BF533和觸控螢幕介面晶片TSC2200調試日誌

來源:互聯網
上載者:User

問了一下億旗,終於調出來了,下面是部分原始碼:
//************************************************//<br />//** file: spi.c<br />//** target: ADSP-BF533<br />//** creat time: 2008-8-19<br />#include <ccblkfn.h><br />#include <cdefBF533.h><br />#include "sys_func.h"</p><p>//SPI interface funtion<br />void SPI_Init(void)<br />{<br /> *pSPI_BAUD = (unsigned short)(GetSCLK() / (2 * 5000000)); // 5MHz<br /> //SPI enable,master mode,CPHA=1(control by software),<br /> //16 bit,Start transfer with write of SPI_TDBR<br /> *pSPI_CTL = 0x5501;<br /> *pSPI_FLG = 0xFF20; // SPISEL5 enabled<br />}</p><p>//SPI send a word function<br />void SPI_send_data(unsigned short data)<br />{<br />*pSPI_TDBR = data;<br />while ((*pSPI_STAT & 0x0001) == 0) ;<br />Delay(1000);<br />}</p><p>//SPI receive a word function<br />unsigned short SPI_receive_data(void)<br />{<br /> SPI_send_data(0xFFFF);<br /> return (*pSPI_RDBR);<br />}</p><p>//SPI RDBR clear<br />void SPI_RDBR_Clr(void)<br />{<br /> unsigned char buf; </p><p> while (*pSPI_STAT & 0x0020)<br /> buf = *pSPI_RDBR;<br />}</p><p>//*********************************************************//<br />#include <ccblkfn.h><br />#include <cdefBF533.h><br />#include <stdio.h><br />#include "tsc2200_exp.h"<br />#include "sys_res.h"<br />#include "segled.h"<br />#include "sys_func.h"<br />#include "uart.h"<br />#include "spi.h"</p><p>//Read value of a register of TSC2200<br />unsigned short TSC2200_Read(unsigned short addr)<br />{<br /> unsigned short temp;<br /> SPI_SEL_LOW; //Clear SS low<br /> SPI_send_data(TSC_CMD_READ | addr);<br /> SPI_RDBR_Clr(); // Clear receiver buffer<br /> temp = SPI_receive_data();<br /> SPI_SEL_HIGH; //Set SS high<br /> return temp;<br />}<br />//Write value to the register of TSC2200<br />void TSC2200_Write(unsigned short addr,unsigned short data)<br />{<br /> SPI_SEL_LOW; //Clear SS low<br /> Delay(100);<br /> SPI_send_data(addr);<br /> SPI_send_data(data);<br /> Delay(100);<br /> SPI_SEL_HIGH; //Set SS high<br />}<br />//Check if the TSC2200 is exist<br />bool Detect_TSC2200(void)<br />{<br /> TSC2200_Write(TSC_CMD_RESET,RESET_RESET); //Reset the TSC2200<br /> Delay(100);<br /> return (TSC2200_Read(TSC_CMD_ADC) == 0x4000); //0x4000 is the default value of reg ADC<br />}<br />//Initial the TSC2200<br />void TSC2200_Init(void)<br />{<br /> TSC2200_Write(TSC_CMD_RESET,RESET_RESET); //Reset the TSC2200<br /> Delay(100);<br /> TSC2200_Write(TSC_CMD_ADC, 0xC4A2);Delay(100);//Stop ADC convertor<br /> TSC2200_Write(TSC_CMD_REF, 0x0017);Delay(100);<br /> TSC2200_Write(TSC_CMD_CFG, 0x000A);Delay(100);<br /> TSC2200_Write(TSC_CMD_ADC, 0x07FF);Delay(100); // Put TSC to Host and slowest mode<br /> TSC2200_Write(TSC_CMD_ADC, 0x84A2);Delay(100); // Setup ADC,TSC control,Read XYZ,12 bit,8 bytes average<br />}<br />//Check if data is available<br />bool TSC2200DataAvailable(void)<br />{<br /> return ((TSC2200_Read(TSC_CMD_CFG) & CFG_DAVB) == 0x0000);<br />}<br />//Read the X Y coordinates<br />void TSC2200ReadXY(unsigned short *px,unsigned short *py)<br />{<br /> *px = TSC2200_Read(TSC_CMD_X);<br /> *py = TSC2200_Read(TSC_CMD_Y);<br />}</p><p>void Tsc2200_Exp(void)<br />{<br /> unsigned short temp = 0x0000,x,y; //Store the X,Y</p><p> SPI_SELECT_TSC2200; // Set SPI select pin to TSC2200</p><p> while(!Detect_TSC2200())<br /> printf("No TSC2200 exist!/n");</p><p> printf("TSC2200 exist!/n");</p><p> TSC2200_Init();</p><p> while (1)<br /> {<br /> if (!(TSC2200_Read(TSC_CMD_CFG) & CFG_DAVB))<br /> {<br /> ledblk();<br /> TSC2200ReadXY(&x,&y);<br /> printf("X=%d;Y=%d;/n",x,y);<br /> }<br /> }<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.