;------------------------------------------
; ==================================
; == LCD應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ==================================
;------------------------------------------
;於LCD顯示第二列顯示'THIS IS 2ND LINE'並閃爍三次,然後由左而右依序清除
2014年12月29日
七段與MINIKEY應用控制 8051 assembly
;------------------------------------------
; ===================================
; == 七段與MINIKEY應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;------------------------------------------
; 以MINIKEY的4個按鍵來控制七段顯示器的動作,按S1、S2、S3、S4分別顯示“┌” 、 “┐” 、“└” 、“┘”。;-----------------------------------------------------------------------------
; ===================================
; == 七段與MINIKEY應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;------------------------------------------
; 以MINIKEY的4個按鍵來控制七段顯示器的動作,按S1、S2、S3、S4分別顯示“┌” 、 “┐” 、“└” 、“┘”。;-----------------------------------------------------------------------------
喇叭與MINIKEY應用控制 8051 assembly
;------------------------------------------
; ===================================
; == 喇叭與MINIKEY應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;以MINIKEY的4個按鍵來控制喇叭,按S1、S2、S3、S4分別讓喇叭發出1kHz、2kHz、4kHz、8kHz聲響。
; ===================================
; == 喇叭與MINIKEY應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;以MINIKEY的4個按鍵來控制喇叭,按S1、S2、S3、S4分別讓喇叭發出1kHz、2kHz、4kHz、8kHz聲響。
七段應用控制 8051 assembly
;------------------------------------------
; ===================================
; == 七段應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;------------------------------------------
;依序點亮七段顯示器的燈管a、燈管b、燈管c…燈管g;點亮的同時依序閃爍1次、2次、3次…7次。
; ===================================
; == 七段應用控制 ==
; == 2014/12/29 ==
; == 蘇偉諺 4A037052 ==
; ===================================
;------------------------------------------
;依序點亮七段顯示器的燈管a、燈管b、燈管c…燈管g;點亮的同時依序閃爍1次、2次、3次…7次。
2014年12月26日
2014/12/26進階微控制器應用
需下載
FreeRTOS v7.6.0程式源碼
在source資料夾
list.c
task.c
在source/portable/SDCC/Cygnal/資料夾=>for 8051
FreeRTOS v7.6.0程式源碼
在source資料夾
list.c
task.c
在source/portable/SDCC/Cygnal/資料夾=>for 8051
2014年12月21日
2014年12月19日
Debian WPA Wireless how to use
# vi /etc/network/interfaces
auto eth1
iface eth1 inet dhcp
wpa-ssid [EESID]
wpa-psk [passowd key]
# ifup eth1
root@Lenovo-B480:/home/clementyan# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=11.7 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=12.8 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=46 time=12.5 ms
auto eth1
iface eth1 inet dhcp
wpa-ssid [EESID]
wpa-psk [passowd key]
# ifup eth1
root@Lenovo-B480:/home/clementyan# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=11.7 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=12.8 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=46 time=12.5 ms
2014/12/19 進階微控制器應用
http://static.grumpycoder.net/pixel/uC-sdk-doc/index.html
新的TCB均需加入工作就緒列表(pxReadyTaskLists),如果是第一個工作,則就需被執行,否則需等待排程。
建立一個新的TCB主要是初化TCB堆疊區,回顧TCB之資料結構
2014年12月16日
Debian 64位元作業系統 裝 32位元套件 安裝 skype
# dpkg --add-architecture i386
# apt-get update;apt-get upgrade# apt-get install ia32-libs
此行只限於wheezy squeeze,jessie不用裝--2015/06/08
# dpkg -i skype-debian_4.3.0.37-1_i386.deb
# apt-get install -f
# dpkg -i skype-debian_4.3.0.37-1_i386.deb
# apt-get install pulseaudio
$ skype &
若還是不行試試下面的指令
$ LD_PRELOAD=/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 skype &
2016/05/27
2014年12月12日
2014/12/12 進階微控制器應用
主要記憶體有二
- stack堆疊-儲存區域變數、全域變數=>managed(受管理的),無記憶體洩漏(編譯時已知道的變數)
- heap記憶堆-儲存動態變數(大量)使用malloc(配置),free(釋放),使用過後需要把他free釋放,否則造成記憶體洩漏(編譯時不知道的變數)
freeRTOS有三種記憶體堆
- keap_1只配置不釋放(適合當你的應用程式是固定的動態記憶體,或者已經知道最多所需使用的動態記憶體微多少)
- keep_2可配置可釋放,使用簡易方法執行配置、釋放,可能會造成記憶體碎斷(fragmentation):假設第一筆資料100bytes,第二筆50bytes,第三筆30bytes,若第二筆被釋放,則要在新增大於50bytes的資料,則會無法放入,只能放置在第三筆之後,稱記憶體碎斷,使記憶體存取速度下降,則需使用記憶體重整。
- keep_3完整之配置釋放,並且會記憶體重整,較常用較耗時
2014年12月5日
2014/12/05 進階微控制器應用
critical section(緊要區):當程式進入緊要區時有兩種可能(該區程式不可太長),目的:希望緊要區內的程式不被其他程式打斷
- 所有中斷被除能(disable)
- 部份中斷被除能(需包含系統滴答中斷的除能,則不會文本切換),保留部份硬體中斷仍可致能,被致能之中斷需能被控制到不切割緊要區之程式,程式進入緊要區後,執行緊要區程式後,要離開緊要區時,需重新致能被除能之中斷
2014年11月28日
2014/11/28 進階微控制器應用
Counting Semaphore 計數信號 (為具有長度大於一之佇列,ㄧ次可以傳好幾個)
Binary Semaphore 二元信號(是長度為一之佇列,且ㄧ次只能傳一個資料,而資料內容不care)
為什麼要用到計數信號?
Binary Semaphore 二元信號(是長度為一之佇列,且ㄧ次只能傳一個資料,而資料內容不care)
為什麼要用到計數信號?
2014年11月11日
Speed up flash games chrome
1. Please download Cheat Engine version 6.2, don't download the latest version, because the latest version may be unstable.
- CheatEngine62.exe is malicious, and Chrome has blocked it.
2014年11月9日
2014年10月31日
2014年10月24日
2014/10/24進階微控制器應用
vTaskDelay(延遲時間)從他呼叫開始計時
vTaskUntil(上次Task開始時間,延遲時間)從上次Task開始時間計時
Task2(void *ptr) {
.//假設中間程式碼需50Ticks
.
vTaskDelay(100);
}
Task1(void *ptr) {
取得執行開始時間
.
.//假設中間程式碼需50Ticks
vTaskUntil(開始執行時間,100);
}
時序圖如下:
vTaskUntil(上次Task開始時間,延遲時間)從上次Task開始時間計時
Task2(void *ptr) {
.//假設中間程式碼需50Ticks
.
vTaskDelay(100);
}
Task1(void *ptr) {
取得執行開始時間
.
.//假設中間程式碼需50Ticks
vTaskUntil(開始執行時間,100);
}
時序圖如下:
2014年10月17日
2014年10月3日
2014/10/03 進階微控制器應用
- 至MY數位學習下載Posix_GCC_Simulator_6.0.4.zip
- cd micro,在~/micro 下解壓縮
- unzip ~/下載/Posix_GCC_Simulator_6.0.4.zip
- 在~/micro 下 cd Posix_GCC_Simulator/FreeRTOS_Posix/Release/
- 在~/micro/Posix_GCC_Simulator/FreeRTOS_Posix/Release/ 執行make
2014年9月26日
2014/09/26進階微控制器應用
--------------------------------------------------------------
第一節
RTOS即時作業系統
以Task(工作)為主
每個Task(工作)基本上為一無窮執行的函數(副程式)
為了要使進入無窮迴圈能在跳出來,故我們要使用Context(文本)
每種微控制器之文本可能有些微之差異,但基本必具有:
第一節
RTOS即時作業系統
以Task(工作)為主
每個Task(工作)基本上為一無窮執行的函數(副程式)
為了要使進入無窮迴圈能在跳出來,故我們要使用Context(文本)
每種微控制器之文本可能有些微之差異,但基本必具有:
2014年9月19日
2014/09/19進階微控制器應用
課程進度:
2014/09/19:介紹課程、FreeRTOS簡介、建立開發環境
09/26~10/3:FreeRTOS架構、工作(Task)、
10/10:放假
10/17~10/24:FreeRTOS 通訊Communication
10/31:FreeRTOS Porting(移植) (目標微控制器為8051)
11/7:期中考
11/14:期中考(補)
11/21~11/28:FreeRTOS應用在8051上
12/5~12/12:FreeRTOS移植到Windows DOS 並型應用程式
12/19~12/26:FreeRTOS移植到Linux上並執行
1/2:放假
1/9:期末考
1/16:期末考(補)
重點:如何移植、熟練、記好步驟
2014/09/19:介紹課程、FreeRTOS簡介、建立開發環境
09/26~10/3:FreeRTOS架構、工作(Task)、
10/10:放假
10/17~10/24:FreeRTOS 通訊Communication
10/31:FreeRTOS Porting(移植) (目標微控制器為8051)
11/7:期中考
11/14:期中考(補)
11/21~11/28:FreeRTOS應用在8051上
12/5~12/12:FreeRTOS移植到Windows DOS 並型應用程式
12/19~12/26:FreeRTOS移植到Linux上並執行
1/2:放假
1/9:期末考
1/16:期末考(補)
重點:如何移植、熟練、記好步驟
2014年7月8日
HOLTEK HT-IDE3000 無法進入for迴圈 delay副程式撰寫 延遲問題
HT-IDE3000 V3版有做部分修正,其中把V2版用於延遲循環的程式碼優化,使其程式碼不會進入延遲循環程式。
解決方式:
解決方式:
2014年5月17日
2014年3月14日
2014年3月13日
DSP 17ABC1893A x 3 運算
.include "vector.def" ;Interrupt Vector define file
.include "register.def" ;Special Purpose Register define file
.include "eSLMacro.def" ;Macro define file
.GLOBAL POWERON
.CODE
.include "interruptvector.def" ;Define all interrupt labels
.include "register.def" ;Special Purpose Register define file
.include "eSLMacro.def" ;Macro define file
.GLOBAL POWERON
.CODE
.include "interruptvector.def" ;Define all interrupt labels
2014年3月12日
2014年3月11日
Virtuoso 基本操作
Step 1.執行 virtuoso 的前置作業
a. 進入/opt/PROCESS 的目錄,指令為: cd /opt/PROCESS
b. 在複製CIC0181P6M目錄到家目錄,指令為:cp -a CIC0181P6M /home/clementyan/
2014年3月5日
JAVA
long L1=1;(1沒加是int,但會隱含轉型為long)
float f3=L1;//只要整數型態(int,long)皆可轉型成float或double
byte myVar1; //myVar1=1; // 1 整數 預設型別是32bit(int)--先隱含轉型 再assign
myVar1=1;//1會轉成byte的大小
//short (16bit)
short myShort1=12345; //12345預設為32bit隱含轉型看看
//兩個變數同類型定義
short s1=1,s2=2,s3;
byte b1=1,b2=1,b3;
b3=(byte)(b1+b2); //進行保守原則的編譯 直接晉升為int
//short or byte之間運算隱含直接晉升為int
int i1=b1+b2;
private封裝不會封裝同一個類別,只會對其他類別封裝
static具有共用特性 共用global記憶體,使用static不用建立物件即可呼叫
float f3=L1;//只要整數型態(int,long)皆可轉型成float或double
byte myVar1; //myVar1=1; // 1 整數 預設型別是32bit(int)--先隱含轉型 再assign
myVar1=1;//1會轉成byte的大小
//short (16bit)
short myShort1=12345; //12345預設為32bit隱含轉型看看
//兩個變數同類型定義
short s1=1,s2=2,s3;
byte b1=1,b2=1,b3;
b3=(byte)(b1+b2); //進行保守原則的編譯 直接晉升為int
//short or byte之間運算隱含直接晉升為int
int i1=b1+b2;
private封裝不會封裝同一個類別,只會對其他類別封裝
static具有共用特性 共用global記憶體,使用static不用建立物件即可呼叫
2014年2月28日
Windows 7 使用 Windows XP 所共用的印表機 HP LaserJet P2015 Series PCL 6
以下範例之規格與作業系統:
共享印表機的主機:Windows XP (32位元)
預安裝印表機的主機:Windows 7 (64位元)
印表機型號:HP LaserJet P2015 Series PCL 6
連線方式:網路
Step 1.到HP官網查詢您的HP印表機驅動程式:http://www8.hp.com/tw/zh/drivers.html
共享印表機的主機:Windows XP (32位元)
預安裝印表機的主機:Windows 7 (64位元)
印表機型號:HP LaserJet P2015 Series PCL 6
連線方式:網路
Step 1.到HP官網查詢您的HP印表機驅動程式:http://www8.hp.com/tw/zh/drivers.html
2014年2月26日
2014年2月21日
2014年2月17日
JAVA
System.out.printf("字串"+任何型態);其 "字串"與任何型態做相加 皆會轉成字串型態輸出
布林-boolean-true,false(JAVA的boolean只能存放true 和 false,不可存放0 1
>,<,=,>=,<=,!=
字元-char
1234_5678
0XAAAA_FFFF_0109
0b1111_0101
Escape "\0"
t-tab
n-newline
u-unicode
=====================================================
對project按右鍵-Properties-Testfile encoding-other-UTF-8(MS950)
unicode萬用碼-16bit=2Bytes
ASCII-8bit=1Byte
記事本-存檔-編碼的不同
按F1查操作手冊
基本型別為值型別:固定大小空間
物件為參考型別:初始空間大小不固定
類別的變數必指派物件位址
類別是一個參考型別參考物件
物件存放的是位址而不是值
String為類別 來自java.lang.String
類別class:
1.atribute
2.method
3.constructor建構子
物件狀態持久(state persistence),生命週期長
值型別生命週期短
{
int s1=1;
String s2="1";
}
到此區塊結束故s1變數結束生命,1值型別也結束生命
到此區塊結束故s2變數結束生命,"1"物件不一定結束生命,但s2的位址值結束生命
//String 字串並非是固定長度的 動態配置記憶體的 所有物件都是
String are constant
2014年2月12日
2014年1月3日
89C51 顯示時鐘 Assembly
;------------------------------------------ ; ================================== ; == LCD 計時器控制(改良版) == ; == 2013/12/21 == ; == 蘇偉諺 4A037052 == ; ================================== ;------------------------------------------