================================================================================ VP-2111 library(vp2k.lib) 使用注意事項 ================================================================================ 1. CPU timer 0,1 timer 1 已經拿來控制Buzzer,所以 (a)Delay()/Delay_1()/Delay_2() 只能用 timer 0。 (b)InstallUserTimerFunction_us()/InstallUserTimerFunction_ms() 也是只能使用 timer 0。 以上兩項功能不能同時使用,不然會互相干擾。 (b)項功能可以改用CPLD 提供的timer 功能: int InstallTimer1Isr(void (*isr)(void),unsigned dt); /* unit = 1 us */ int InstallTimer2Isr(void (*isr)(void),unsigned dt); /* unit = 10 us */ -------------------------------------------------------------------------------- 2.Buzzer 使用 設定讓 Busser 發出聲音用 void Sound(unsigned freq,unsigned period); 可以設定聲音的頻率跟時間(時間單位 ms)。 用void NoSound(void); 關掉聲音。 -------------------------------------------------------------------------------- 3.按鍵使用 *判斷有沒有按鍵用 int IsKey(void); 傳回值是 0 表示沒有按鍵輸入。 其他值表示有按鍵輸入。 當偵測到按鍵被按下時,會紀錄一個按鍵值。放開時不會。 *讀取按鍵值用 int ReadKey(void); 要先呼叫IsKey() 確認有按鍵輸入後才用ReadKey() 讀取按鍵值。 if(IsKey()){ key=ReadKey(); //... } 特殊按鍵的按鍵值定義如下: #define F1_KEY 0x0F01 #define F2_KEY 0x0F02 #define F3_KEY 0x0F03 #define F4_KEY 0x0F04 #define F5_KEY 0x0F05 #define F6_KEY 0x0F06 #define UP_KEY 0x0F07 #define DOWN_KEY 0x0F08 #define LEFT_KEY 0x0F09 #define RIGHT_KEY 0x0F0A //#define SHIFT_KEY 0x0F0B [*]SHIFT 鍵用來切換英數輸入,不會輸出按鍵值。 *按鍵按下或是放開的event *判斷有沒有按鍵 event 用 unsigned char IsKeyEvent(void); 傳回值1 表示有按鍵按下或是放開的event。0 表示沒有。 *讀取按鍵 event unsigned char ReadKeyEvent(void); 傳回 0 表示已經沒有按鍵的event 了。 其他值表示某個按鍵的event。 傳回值的bit7 = 0 表示按鍵被按下,1 表示按鍵放開。 bit 6~0 代表按鍵編號(vp-2111 共有24 個按鍵,編號為 0∼23。) 按鍵編號定義在vp2k.h 如下: #define KEY_UP 0 #define KEY_LEFT 1 #define KEY_DOWN 2 #define KEY_ENTER 3 #define KEY_RIGHT 4 #define KEY_BACKSPACE 5 #define KEY_3 6 #define KEY_6 7 #define KEY_9 8 #define KEY_0 9 #define KEY_SHIFT 10 #define KEY_POINT 11 #define KEY_1 12 #define KEY_4 13 #define KEY_7 14 #define KEY_8 15 #define KEY_5 16 #define KEY_2 17 #define KEY_F1 18 #define KEY_F2 19 #define KEY_F3 20 #define KEY_F6 21 #define KEY_F5 22 #define KEY_F4 23 if(IsKeyEvent()){ key=ReadKeyEvent(); Print("key %d is %s\r\n",key&0x7F,(key & 0x80)?"released":"pressed"); } -------------------------------------------------------------------------------- 4.LCD 背光亮度控制 LCD 背光亮度分成20 個等級。由變數 extern unsigned LCD_BackLight; 控制。 直接在程式設定 LCD_BackLight=xx; 就可以調整LCD 背光亮度。 最大值的定義如下: #define LCD_MAX_BACK_LIGHT 20 設定 LCD_BackLight=0; 就是關掉LCD 背光。 另有兩個副程式也可以設定 LCD 背光的開關: LCD_BackLight_Off(); --> LCD_BackLight=0; LCD_BackLight_On(); --> LCD_BackLight=LCD_MAX_BACK_LIGHT; --------------------------------------------------------------------------------