|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
為什么ADS7843讀出來全是0?? |
| 作者:Lx_mcu 欄目:MCU技術(shù) |
我開始用的是下面這個程序,讀出來全是0,能生中斷! 后來我又改了下,還是全為0;不知道是什么問題! 哪位大哥幫幫助呀! 觸摸屏芯片ADS7846/ADS7843驅(qū)動程序(C51) /* [文件名] Touch.c [功 能] 8051單片機驅(qū)動ADS7846/ADS7843芯片 [簡 介] ADS7846/7843芯片 適合用在4線制觸摸屏,它通過標準SPI協(xié)議和CPU通信,操作簡單,精度高,當(dāng) 觸摸屏被按下時(即有觸摸事件發(fā)生)則ADS7846向CPU發(fā)中斷請求,CPU接到請求后,應(yīng)延時一下再響應(yīng) 其請求,目的是為了消除抖動使得采樣更準確。如果一次采樣不準確。 [原作者] 鞠春陽 [版 本] v1.1b [最后修改時間] 2004年3月31日 9:11 */ #include "reg51.h" #include "intrins.h" sbit DCLK=P1^6; sbit CS=P2^2; sbit DIN=P2^3; sbit DOUT=P2^4; sbit BUSY=P2^5; delay(unsigned CHAR i--) { while(i--); } void start() //SPI開始 { DCLK=0; CS=1; DIN=1; DCLK=1; CS=0; } WriteCharTo7843(unsigned CHAR num) //SPI寫數(shù)據(jù) { unsigned CHAR count=0; DCLK=0; for(count=0;count<8;count++) { num<<=1; DIN=CY; DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效 DCLK=1; _nop_();_nop_();_nop_(); } } ReadFromCharFrom7843() //SPI 讀數(shù)據(jù) { unsigned CHAR count=0; unsigned int Num=0; for(count=0;count<12;count++) { Num<<=1; DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效 DCLK=0; _nop_();_nop_();_nop_(); if(DOUT) Num++; } return(Num); } void ZhongDuan() interrupt 0 //外部中斷0 用來接受鍵盤發(fā)來的數(shù)據(jù) { unsigned int X=0,Y=0; delay(10000.html">10000); //中斷后延時以消除抖動,使得采樣數(shù)據(jù)更準確 start(); //啟動SPI // while(BUSY); //如果BUSY信號不好使可以刪除不用 delay(2); WriteCharTo7843(0x90); //送控制字 10010000.html">10000 即用差分方式讀X坐標 詳細請見有關(guān)資料 // while(BUSY); //如果BUSY信號不好使可以刪除不用 delay(2); DCLK=1; _nop_();_nop_();_nop_();_nop_(); DCLK=0; _nop_();_nop_();_nop_();_nop_(); X=ReadFromCharFrom7843(); WriteCharTo7843(0xD0); //送控制字 11010000.html">10000 即用差分方式讀Y坐標 詳細請見有關(guān)資料 DCLK=1; _nop_();_nop_();_nop_();_nop_(); DCLK=0; _nop_();_nop_();_nop_();_nop_(); Y=ReadFromCharFrom7843(); CS=1; } main() { TMOD=0x11; // 記數(shù)器0 計數(shù)器1 都以 16 位 記數(shù) TCON=0x00; IE=0x83; //1000 0001 EA=1中斷允許, IP=0x01; while(1); } |
| 2樓: | >>參與討論 |
| 作者: zjb 于 2007/12/3 11:17:02 發(fā)布:
是不是使用的晶振頻率有問題呀?請大家?guī)蛶兔Α?/td> | |
| 3樓: | >>參與討論 |
| 作者: zjb 于 2007/12/3 11:19:13 發(fā)布:
有什么好辦法。請給我發(fā)郵件zjbdz0102@163.com |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |