觸控螢幕設定

2021-04-26 13:20:08 字數 2589 閱讀 1802

1.srcpnd,intpnd

暫存器的意義:

一直不明白為什麼中斷服務程式最後要把

srcpnd,intpnd

相應位置

1,還把這個過程稱為

cleaningpend

,既然叫清除為什麼不是清零呢?查了手冊:當有中斷源請求中斷服務時,

srcpnd

相應位置

1,裁決(判斷是否響應中斷)時

intpnd

自動置1

。如果中斷遮蔽,

srcpnd置1

,但intpnd

不變。當

intpnd置1

時,響應中斷服務程式。中斷服務程式通過向相應位寫

1來清除未決斷條件(

pending

)。我理解是

srcpnd

只要有中斷源請求中斷就置

1,可以響應中斷時(未遮蔽),

intpnd

相應位置

1,否則為

0。為了使其他的中斷服務程式可以執行,在中斷服務程式中

srcpnd

、intpnd

相應位應清零,否則會認為一直有中斷源請求中斷。而

*pnd

暫存器的清零就是向相應位寫入

1(通過除錯發現)。我一直理解錯誤,以為寫入

1就是把相應位置

1,其實剛好相反。

2.編譯問題:

標頭檔案裡定義了

define bit_adc(0x1<<31)

結果編譯報錯:

warning :signed constant overflow 「<<」

上網查了才明白原來

ads1.2把1

當成有符號數,加上強制轉換就好了。

define bit_adc((u32)0x1<<31)

分析中斷程式:

/*中斷服務程式*/

void __irq touch_scrisr(void)

radctsc=(1<<3|1<<2);

//xp pull up disable,seq x y position

產生中斷後

waiting for interrupt mode

應被清除

//這裡

1<<2

設為自動測量模式。

radcdly=40000;

radccon|=0x01;

//start adc

while(radccon & 0x1);//check if enable_start is low

while(!(radccon & 0x8000));//check if ec(end of conversion) flag is high, this line is necessary~!!

while(!(rsrcpnd & (bit_adc)));//check if adc is finished with interrupt bit

xdata=(radcdat0&0x3ff);

ydata=(radcdat1&0x3ff);

rsubsrcpnd|=(bit_sub_tc);//clear pending

rsrcpnd =(bit_adc);

rintpnd =(bit_adc);

rintsubmsk=~(bit_sub_tc);

rintmsk=~(bit_adc);

radctsc=(0<<8|1<<7|1<<6|0<<5|1<<4|0<<3|0<<2|3);//waiting for interrupt

radctsc=radctsc|(1<<8);//detect stylus up

觸控螢幕抬起

while(1)//to check pen-up state }

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

radcdly=40000;

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

rsubsrcpnd|=bit_sub_tc;

//rintmsk=~(bit_sub_tc);

rintsubmsk=~(bit_sub_tc);

rsrcpnd =(bit_adc);//clear pending

rintpnd =(bit_adc);

}其中要是不加如下:

while(1)//to check pen-up state }

觸控螢幕會出現抖動,按下後會出現十幾個值,加上上面語句程式會停在

while

中,只有產生

int_tc

(觸控螢幕源中斷)中斷才執行

break

跳出執行其後的

uart_printf(" count=%03d, xp=%04d, yp=%04d/n",count++, xdata, ydata);

最後還有乙個現象我不明白,注意紅色語句,如果遮蔽掉,則觸控螢幕左半邊點兩下才有反應,右半邊正常。加上則觸控螢幕正常。

觸控螢幕開發 觸控螢幕甩屏互動系統

這是南京酷牛科技最新開發的一款上下屏聯動觸控螢幕軟體。比較獨特的是,玩家可以通過控制乙個下屏,與上屏五個顯示屏進行展示的互動。軟體組成 軟體特點 1 一台大的顯示器 支援led屏,投影儀,拼接屏 可以和多個觸控螢幕組成區域網實現觸屏資料飛至大屏,不限制觸控螢幕的個數。如果只有1個觸控螢幕也可以用擴充...

觸控螢幕驅動

輸入子系統體系 核心層 linux dir drivers input input.c 提供最核心函式 裝置事件層 linux dir drivers input evdev.c 提供handler 提供輸入裝置產生的原始資料並上報給應用程式,這適用於 所有輸入裝置,該觸控螢幕也不例外 編寫基於輸入...

台達觸控螢幕許可權設定

觸控螢幕,比起高階程式語言算是非常簡單了,很多功能裝置廠家都已經為我們做好了,只需要像 一樣點來點去就行了,呵呵,剛開始觸控螢幕的許可權找不到在哪兒設定,找來找去倒也花了點時間,如果有需要的朋友搜尋到此文章,希望對你有用處。操作方法 觸控螢幕預設的許可權為0,最高端為7。只需修改 畫面按鈕 的屬性 ...