硬體設計方面主要是at91sam7晶元與有t6963驅動器的160*128單色顯示屏介面。觸控螢幕設計主要是四線電阻式觸控螢幕和ads7843晶元連線再接at91sam7晶元的spi介面上,pirq角與mcu上的irq0外部中斷引腳相連線。
uc/gui在這個晶元上的移植很簡單,主要還是對t6963驅動器的移植。首先要修改的檔案是lcdconf.h檔案,這個是gui的配置標頭檔案。將該檔案做如下修改
#define lcd_xsize (160)
#define lcd_ysize (128)
#define lcd_controller (6963)
#define lcd_bitsperpixel (1)
void lcd_x_write00(char c);
void lcd_x_write01(char c);
char lcd_x_read01(void);
#define lcd_write_a1(byte) lcd_x_write01(byte) //寫命令
#define lcd_write_a0(byte) lcd_x_write00(byte) //寫資料
#define lcd_read_a1() lcd_x_read01() //讀狀態
這裡定義了三個和硬體介面有關的函式,直接和硬體驅動有關的函式。在乙個lcdlib.c檔案中定義這個函式。
由於uc/gui有對6963的驅動檔案lcdslin.c檔案,所以在簡化了不少移植工作。接下來主要修改的就是gui與os介面的幾個函式在gui_x_ucos.c檔案中。
int gui_x_gettime(void)
void gui_x_delay(int period)
void gui_x_execidle(void)
tatic os_event * dispsem;
u32 gui_x_gettaskid(void)
void gui_x_initos(void)
void gui_x_unlock(void)
void gui_x_lock(void)
void gui_x_init(void) {}
由於使用了t6963控制器,gui的移植就簡化了不少工作。接下來主要在對於觸控螢幕驅動的編寫。由於使用的是ads7843晶元,這在網上有很多資料可以參考,所以驅動不是很大的問題,主要是用at91sam7晶元的spi口對晶元進行操作,而不需要用微控制器的方式模擬spi操作,這樣簡單了不少。gui_touch_driveranalog.c檔案主要編寫了乙個中斷處理函式irq0_handle(void);主要是當有筆觸中斷時,給ads7843傳送命令取x或y的數值用 硬體設計方面主要是at91sam7晶元與有t6963驅動器的160*128單色顯示屏介面。觸控螢幕設計主要是四線電阻式觸控螢幕和ads7843晶元連線再接at91sam7晶元的spi介面上,pirq角與mcu上的irq0外部中斷引腳相連線。
uc/gui在這個晶元上的移植很簡單,主要還是對t6963驅動器的移植。首先要修改的檔案是lcdconf.h檔案,這個是gui的配置標頭檔案。將該檔案做如下修改
#define lcd_xsize (160)
#define lcd_ysize (128)
#define lcd_controller (6963)
#define lcd_bitsperpixel (1)
void lcd_x_write00(char c);
void lcd_x_write01(char c);
char lcd_x_read01(void);
#define lcd_write_a1(byte) lcd_x_write01(byte) //寫命令
#define lcd_write_a0(byte) lcd_x_write00(byte) //寫資料
#define lcd_read_a1() lcd_x_read01() //讀狀態
這裡定義了三個和硬體介面有關的函式,直接和硬體驅動有關的函式。在乙個lcdlib.c檔案中定義這個函式。
由於uc/gui有對6963的驅動檔案lcdslin.c檔案,所以在簡化了不少移植工作。接下來主要修改的就是gui與os介面的幾個函式在gui_x_ucos.c檔案中。
int gui_x_gettime(void)
void gui_x_delay(int period)
void gui_x_execidle(void)
tatic os_event * dispsem;
u32 gui_x_gettaskid(void)
void gui_x_initos(void)
void gui_x_unlock(void)
void gui_x_lock(void)
void gui_x_init(void) {}
由於使用了t6963控制器,gui的移植就簡化了不少工作。接下來主要在對於觸控螢幕驅動的編寫。由於使用的是ads7843晶元,這在網上有很多資料可以參考,所以驅動不是很大的問題,主要是用at91sam7晶元的spi口對晶元進行操作,而不需要用微控制器的方式模擬spi操作,這樣簡單了不少。gui_touch_driveranalog.c檔案主要編寫了乙個中斷處理函式irq0_handle(void);主要是當有筆觸中斷時,給ads7843傳送命令取x或y的數值用gui_touch_storestate(x,y)儲存並在其他函式中呼叫。
大致的移植過程就是這個樣子,因為用了6963這個控制晶元和ads7843晶元,程式編寫量大大減小。詳細的不再累述。
編譯核心for at91sam9260
注意 1 在核心編譯時,在編譯的過程 現錯誤也會生成輸出檔案,這個檔案是不能用的。2 在clean 後進行編譯時的 花費時間 4分鐘,檔案大小為約 1.33m 3 在不clean 直接進行編譯時的 花費時間 12秒,檔案大小為約 1.33m make zimage檔案是指令碼檔案,由它來設定引數,以...
AT91SAM9260開發環境的搭建
由於at91sam上移植的是2.6版本的核心,交叉編譯工具版本不宜過高,所以這裡ubuntu系統也選擇的是10.04版本 ubuntu1004版本的源更新 中文系統配置 vim作為開發時最常用的編輯器,它的配置可以影響到你的工作效率。vim配置 設定固定的ip位址 方便開發板與虛擬機器連線時的穩定。...
AT91SAM9260硬體時鐘RTC的使用
一 硬體要求 1 at91sam9260平台 2 時鐘晶元 rx8025 sa nb 3 介面 通過i2c 匯流排讀取,兩條匯流排為pa23 pa24。二 配置核心 進入核心根目錄下,執行配置選單。make menuconfig 1 選中i2c device drivers i2c suport i...