娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

s3c2440裸機-電阻觸摸屏-3-觸摸屏TSC初始化和中斷服務程序框架

發布者:BlissfulMoments最新更新時間:2024-07-04 來源: elecfans關鍵字:電阻觸摸屏  觸摸屏  中斷服務  程序框架 手機看文章 掃描二維碼
隨時隨地手機看文章

1. ADC中斷產生流程


中斷源:

這里是ADC和TSC共用一個中斷源。



SRCPND表示哪個中斷源產生了中斷請求。




INTMODE:配置中斷模式




配置中斷屏蔽寄存器




中斷掛起寄存器(用來顯示當前優先級最高的、正在發生的中斷, 需要清除對應位)





從SRCPND寄存器可以讀到ADC和TSC復用的同一個中斷源,那么如何區分呢?

可以從SUBSRCPND寄存器配置,如下:




當bit 9被置1時,表示TSC中斷。那么我們需要打開subsrcmask寄存器



所以TSC中斷的產生流程如下:



2. TSC編程實現

  ①初始化TSC,ADCTSC寄存器

②設定TSC處于“等待中斷模式”

 ?、凼鼓躎SC中斷

      INTSUBMSK

      MSK/MODE

  ④按下,進入TSC中斷

      進入自動采集轉換模式

      啟動ADC

 ?、軦DC中斷

      讀數據

      再次進入”等待中斷模式“

      啟動定時器(為了處理長按或者滑動操作)

 ?、?a href="http://www.nncyjs.com/zhuanti/jzbv10" style="color:#4595e6;" target="_blank">定時器中斷

      若松開,結束

      如任然按下,進入④步驟的啟動ADC流程



2.1 初始化

void touchscreen_init(void) { /* 設置觸摸屏接口:寄存器 */ adc_ts_reg_init(); /* 設置中斷 */ adc_ts_int_init(); /* 讓觸摸屏控制器進入'等待中斷模式' */ enter_wait_pen_down_mode(); }

2.1.1 tsc寄存器init

主要是設置預分頻,產生ADC clk = 1MHz.

void adc_ts_reg_init(void) { /* [15] : ECFLG, 1 = End of A/D conversion * [14] : PRSCEN, 1 = A/D converter prescaler enable * [13:6]: PRSCVL, adc clk = PCLK / (PRSCVL + 1) * [5:3] : SEL_MUX, 000 = AIN 0 * [2] : STDBM * [0] : 1 = A/D conversion starts and this bit is cleared after the startup. */ ADCCON = (1<<14) | (49<<6) | (0<<3); ADCDLY = 0xff; }

2.1.2 TSC interrupt init并且使能int

為了將中斷源開啟,這里設置SUBSRCPND 和INTSUBMSK讓中斷源開啟。通過register_irq()注冊中斷號和中斷服務程AdcTsIntHandle,查表得出中斷號為31,這樣當硬件產生中斷后可以從INTOFFSET區分是哪個中斷號。如下圖:



void adc_ts_int_init(void) { SUBSRCPND = (1<

2.1.3 進入'等待中斷模式'







進入等待中斷模式,YM閉合, YP, XP, XM斷開,需要pull up,WAIT_PEN_DOWN表示要等待的是按下中斷,當觸摸屏按下時就會產生一個TSC irq,反之WAIT_PEN_UP表示要等待的是松開中斷。

#define ADC_INT_BIT (10) #define TC_INT_BIT (9) #define INT_ADC_TC (31) /* ADCTSC's bits */ #define WAIT_PEN_DOWN (0<<8) /*觸摸筆按下*/ #define WAIT_PEN_UP (1<<8) /*觸摸筆松開*/ #define YM_ENABLE (1<<7) #define YM_DISABLE (0<<7) #define YP_ENABLE (0<<6) #define YP_DISABLE (1<<6) #define XM_ENABLE (1<<5) #define XM_DISABLE (0<<5) #define XP_ENABLE (0<<4) #define XP_DISABLE (1<<4) #define PULLUP_ENABLE (0<<3) #define PULLUP_DISABLE (1<<3) #define AUTO_PST (1<<2) /*自動轉換*/ #define WAIT_INT_MODE (3) /*等待中斷模式*/ #define NO_OPR_MODE (0) /*禁止模式*/ void enter_wait_pen_down_mode(void)/*等待按下模式*/ { ADCTSC = WAIT_PEN_DOWN | PULLUP_ENABLE | YM_ENABLE | YP_DISABLE | XP_DISABLE | XM_DISABLE | WAIT_INT_MODE;} void enter_wait_pen_up_mode(void)/*等待松開模式*/ {   ADCTSC = WAIT_PEN_UP | PULLUP_ENABLE | YM_ENABLE | YP_DISABLE | XP_DISABLE | XM_DISABLE | WAIT_INT_MODE; }

2.2 TSC中斷服務程序

SUBSRCPND的bit9, bit10可以區分是TC中斷還是ADC中斷。



void Isr_Tc(void)/*觸摸屏中斷服務程序*/ {   printf('ADCUPDN = 0x%x, ADCDAT0 = 0x%x, ADCDAT1 = 0x%x, ADCTSC = 0x%xnr', ADCUPDN, ADCDAT0, ADCDAT1, ADCTSC);   if (ADCDAT0 & (1<<15))//dat寄存器的第15位判斷按下還是松開 {     printf('pen upnr');     enter_wait_pen_down_mode();   }   else   {     printf('pen downnr');     /* 進入'等待觸摸筆松開的模式' */     enter_wait_pen_up_mode();   } } void AdcTsIntHandle(int irq) {   if (SUBSRCPND & (1<
  //SRCPND = 1<<31;/*在interrupt.c已經清中斷了*/
}

AdcTsIntHandle函數: 這里先注解掉ADC中斷,只檢測單獨的按下松開觸摸屏操作。那當isr處理完后為了能夠正常響應下一次中斷,需要清中斷,否則會一直觸發interrupt。

Isr_Tc函數:ADCDAT0 寄存器的第15位判斷按下還是松開。那么當按下后,要將控制器進入”等待松開模式“,當松開后,要將控制器配置進入”等待按下模式“。



關鍵字:電阻觸摸屏  觸摸屏  中斷服務  程序框架 引用地址:s3c2440裸機-電阻觸摸屏-3-觸摸屏TSC初始化和中斷服務程序框架

上一篇:s3c2440裸機-電阻觸摸屏-4-isr設計_獲取觸摸屏坐標
下一篇:s3c2440裸機-電阻觸摸屏-2-觸摸屏TS控制器

推薦閱讀最新更新時間:2025-04-17 22:44

[ARM裸機程序][8]ARM處理器啟動流程(S3C2440)
ARM處理器啟動流程 S3C2440支持啟動方式: 1. NorFlash啟動 2. NandFlash啟動 當處理器上電時,會自動從0地址處取第一條指令開始運行。左邊為當選擇NorFlash啟動時地址的布局,右邊為當選擇NandFlash啟動時地址的布局。 NandFlash不像NorFlash一樣參與統一編址,CPU不能直接訪問其內容。NandFlash啟動模式時,0地址處為Boot SRAM片內RAM大小4KB,Boot SRAM也稱stepping stone。CPU上電后第一條指令從stepping stone獲取,CPU會提前把NandFlash最前端的4KB內容復制到stepping stone(硬件自動完成)。
[單片機]
[ARM<font color='red'>裸機</font><font color='red'>程序</font>][8]ARM處理器啟動流程(<font color='red'>S3C2440</font>)
S3C2440—3.用點亮LED來熟悉裸機開發的詳細流程
裸機點亮LED可以分為三步: 看原理圖,確定控制LED的引腳 看芯片手冊,確定如何設置/控制引腳 編寫驅動程序 一.硬件知識 1.LED原理圖 原理圖將LED抽象化,就像下面這樣: LDE的電阻一般很小,而電壓一般為3.3V,這樣以來電流就很大了,為了避免LED被大電流燒壞,需要給LED串聯一個保護電阻。 然而電路中不是依靠我們手動打開電路開關的,可以通過芯片的引腳電平輸出3.3V來點亮LED : 或者如下,控制芯片引腳輸出0V來點亮LED: 當引腳的驅動能力不足時(電壓不夠3.3V),可以使用三極管。 如示,只要引腳輸出電壓滿足三極管導通,就可以使3.3V電壓加在LED上,這里引腳的輸出控制三
[單片機]
<font color='red'>S3C2440</font>—3.用點亮LED來熟悉<font color='red'>裸機</font>開發的詳細流程
mini2440的觸摸屏驅動----使用input子系統實現
沒說程序之前先上圖一張,這個圖方便理解input子系統下的觸摸屏的實現。 關于input子系統的實現在前幾篇博客中已經實現了input子系統的按鍵驅動。 下面開始說觸摸屏的驅動程序。 在說之前先結合上面的圖說一下幾個主要的函數的調用情況。 個中斷函數的調用次序: 先是stylus_updown TC中斷處理函數, 如果要是壓下則調用touch_timer_fire來啟動ADC轉換, 在ADC轉換結束之后調用stylus_action。 程序中前面定義的宏和變量: /* For ts.dev.id.version */ #define S3C2410TSVERSION 0x0101 /*定義一個WA
[單片機]
mini2440的<font color='red'>觸摸屏</font>驅動----使用input子系統實現
七、2440裸機開發 觸摸屏操作
七、lcd觸摸屏控制 觸摸屏就是當接觸了屏幕上的圖形按鈕時,屏幕上的觸覺反饋系統可根據預先編程的程式驅動各種連結裝置,可用以取代機械式的按鈕面板。2440連接的是電阻式觸摸屏,利用壓力感應進行控制,電阻觸摸屏的主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,這是一種多層的復合薄膜,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導電電阻)導電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層、它的內表面也涂有一層涂層、在他們之間有許多細小的(小于1/1000英寸)的透明隔離點把兩層導電層隔開絕緣。當手指觸摸屏幕時,兩層導電層在觸摸點位置就有了接觸,電阻發生變化,在X和Y兩個方向上產生信號,然后送觸摸屏控制器。
[單片機]
七、2440<font color='red'>裸機</font>開發 <font color='red'>觸摸屏</font>操作
人機交互技術迎來又一次革命 觸摸屏將被語音取代?
據VentureBeat網站報道,蘋果在今年的全球開發者大會上發布HomePod智能音箱,標志著智能音箱大戰正式拉開序幕。我們都在拭目以待,看哪家公司能贏得這場大戰,成為智能音箱市場領頭羊。 雖然對科技有興趣的用戶,已經開始把智能音箱融入他們的生活,而對科技缺乏興趣的用戶,則因擔心安全而遲遲不購買、使用智能音箱。無論是否對科技感興趣,人們都一致認為,向語音助手技術發展的趨勢沒有顯示出放緩的跡象。語音助手技術數十年前就已經問世,但最近數年才開始逐步應用到汽車、手機、冰箱,甚至照明燈具中。智能音箱及其底層技術語音助手,控制各種家居設備,是我們處于另一次技術革命引爆點的一個跡象。 畢竟,語音助手科技大戰是一個微妙和強有力的信號,它預示著
[家用電子]
基于STM32的帶觸摸屏的無線解說器
本實例是以STM32F103系列單片機作為核心處理器,利用VS1003芯片進行音頻解碼的一種無線解說器。通過對觸摸顯示屏的操作,實現手持部分和終端部分二者的無線通訊。系統采用大容量的SD卡作為存儲部分,通過SPI將VS1003B與SD卡的數據與STM32進行交互通信。本解說器在播放時沒有出現理論上的斷續情況,音質較好,占用的軟硬件資源也較少,為后續的擴展留下了很大空間。 無線講解器通常用于工廠、博物館、景區等室外空曠場所供參觀介紹用,通過事先在場所安放無線發射模塊,并控制發射模塊的工作范圍。聽眾到達景點后,手上的講解器將自動接收各個地點的無線編碼信號,經解碼后即可將存儲在SD卡中的語音播放,以便清晰地全程收聽全部介紹內
[單片機]
基于STM32的帶<font color='red'>觸摸屏</font>的無線解說器
EP7212處理器的LCD控制及觸摸屏接口設計
1 引言 微電子機械系統(MEMS)是在微電子技術基礎上發展起來的多學科交叉的新興學科。由于它與傳統機械系統相比,具有可大批量生產、成本低、功耗小、集成化等一系列顯著的優點,近十年來得到了迅速的發展。隨著MEMS從研究階段逐漸步入產業化階段,其對測試系統的需求也越來越迫切。特別是對動態特性的測試技術,這是因為MEMS的動態特性決定了MEMS器件的基本性能;而且MEMS微結構三維微運動情況、材料屬性及機械力學參數、MEMS可靠性與器件失效模式、失效機理等關鍵問題均可通過MEMS動態測試技術加以解決;同時,通過動態測試技術,還可以研究一系列相關的基礎理論問題。因此,MEMS動態測試技術近年來得到了國內外許多MEMS研究機構的高度重視
[單片機]
EP7212處理器的LCD控制及<font color='red'>觸摸屏</font>接口設計
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 靖边县| 图木舒克市| 通许县| 张家口市| 镶黄旗| 长汀县| 邯郸市| 罗源县| 盐亭县| 龙南县| 丹江口市| 大同县| 高平市| 肃宁县| 桑日县| 天门市| 四平市| 奎屯市| 夏邑县| 壶关县| 神农架林区| 定陶县| 阿拉善右旗| 惠来县| 宜阳县| 大关县| 嵊州市| 古蔺县| 安国市| 垦利县| 息烽县| 安仁县| 鄯善县| 五寨县| 潢川县| 峡江县| 清远市| 永丰县| 伊春市| 衡水市| 南开区|