稍微的整理一下,觸控螢幕的中斷也就兩種訊號,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的看門狗(裸機)
在由微控制器構成的微型計算機系統中,由於微控制器的工作常常會受到來自外界電磁場的干擾,造成程式的跑飛,而陷入死迴圈,程式的正常執行被打斷,由微控制器控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對微控制器執行狀態進行實時監測的考慮,便產生了一種專門用於監測微控制器...