基於mini2440的兩種觸屏中斷程式 T35

2021-08-02 15:39:16 字數 988 閱讀 5874

稍微的整理一下,觸控螢幕的中斷也就兩種訊號,inc_adc和inc_tc,處理好這兩個訊號的發生關係,就能很輕易的對觸控進行操作。

1.其中的一種是2440test中自帶的touchpanel.c,但是其中的很多**可以省略,修改後如下:

void __irq adctsauto(void)

} uart_printf("count=d  xp=d, yp=d\n", count++, xdata, ydata);    //x-position conversion data           

radctsc=radctsc&~(1<<8); // detect stylus down interrupt signal.

rsubsrcpnd|=bit_sub_tc;  //清除tc(pen-up)中斷未決位

rsrcpnd|=bit_adc;

rintpnd|=bit_adc;

}void test_touchpanel(void)

這個**時間處理inc_adc和inc_tc的兩個訊號放在乙個中斷函式中進行處理,注意一定要在處理完後對相應的未決暫存器清零。

2.另一種是基於兩種訊號分別處理的訊號,貼碼如下:

void adc_handle(void)

void tc_handle(void)

else                    //若觸控螢幕被按下

// while(radccon&0x1);

// whule(radccon&0x8000);

rsubsrcpnd|=bit_sub_tc; //對中斷未決暫存器相應的tc中斷位清0,避免多次中斷

rsrcpnd|=bit_adc;

rintpnd|=bit_adc;  

}void __irq adctshandle(void)

void test_touchpanel(void)

總結:分析可得,第二種方案更具可操作性,裝訂儀即時基於此進行顯示

from:

基於mini2440的RTC讀寫(裸機)

很多處理器都有rtc實時時鐘功能,s3c2440也提供了這個功能,其功能主要是 實時時鐘 鬧鐘 tick中斷等。rtc的操作比較簡單。讀寫時rtccon最低位應設定為1,不讀寫時設定為0以免誤修改rtc相應暫存器。bcdsec,bcdmin,bcdhour,bcdday,bcddate,bcdmon...

基於mini2440的看門狗(裸機)

在由微控制器構成的微型計算機系統中,由於微控制器的工作常常會受到來自外界電磁場的干擾,造成程式的跑飛,而陷入死迴圈,程式的正常執行被打斷,由微控制器控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對微控制器執行狀態進行實時監測的考慮,便產生了一種專門用於監測微控制器...

基於mini2440的看門狗(裸機)

在由微控制器構成的微型計算機系統中,由於微控制器的工作常常會受到來自外界電磁場的干擾,造成程式的跑飛,而陷入死迴圈,程式的正常執行被打斷,由微控制器控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對微控制器執行狀態進行實時監測的考慮,便產生了一種專門用於監測微控制器...