⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 touch.c

📁 avr+TFT+SD卡实现数码相框功能
💻 C
字号:
/**********************************
*
*
*
*
************************************/
#include <avr/io.h>
#include "spi.h"
#include "touch.h"
#include "tft.h"

unsigned int XY_POS[2]={0,0};

void TouchInit(void)
{
	Touch_res();
	DDRE |= (1<<TOUCH_CS);
	DDRE &= ~(1<<TOUCH_INT);	//PE4 connect to Touch screen interrupt
	
}

void Touch_set(void)
{
	/*----SPI----*/
	//SCLK = Fosc/64
	//---SPCR |= (1<<SPR1) | (1<<SPR0) | (1<<CPHA);
	SPCR |= (1<<SPR1) | (1<<SPR0);
	SPSR |= (1<<SPI2X);
	//asm("nop");
	
	/*-----touch set-------*/	
}
/**************************************************************************************
* 名    称: GetTouchADvalue
* 功    能: 得到触摸屏的AD值
* 参    数: 要采集的AD通道及命令
* 返 回 值:
* 备    注: 24 Clocks-per-Conversion
**************************************************************************************/
unsigned int GetTouchADvalue(unsigned char CMD)
{
	unsigned char spi_data;
	unsigned int ad_value = 0;
	Touch_cs();		//片选
	spi_data = spiTransferByte(CMD);
	asm("nop");		
	asm("nop");
	asm("nop");
	asm("nop");
	asm("nop");

	//ad_value = spi_send(0x00);
	ad_value = spiTransferByte(0x00);
	//ad_value |= spi_data;
	//ad_value <<= 8;
	//spi_data = spi_send(0x00);
	spi_data = spiTransferByte(0x00);
	ad_value <<= 8;
	ad_value |= spi_data;
	Touch_res();	//释放
	ad_value >>= 3;
	return ad_value;
}
/**************************************************************************************
* 名    称: Touch_XY
* 功    能: 计算XY在屏幕上的位置
* 参    数: 指针指向存放XY的AD值的数组
* 返 回 值: 无
*
**************************************************************************************/
void Touch_XY(unsigned int *pxy)
{
	asm("nop");
	asm("nop");
	asm("nop");

}
/**************************************************************************************
* 名    称: DisplayPosition
* 功    能: 在液晶上的指定位置显示数字
* 参    数: 
* 返 回 值: 无
* 备    注: 可以显示的数字范围0000~9999
**************************************************************************************/
void DisplayPosition(unsigned int x, unsigned int y, unsigned int Pos)
{
	unsigned int temp;
	unsigned char i;
	temp = Pos;
	i = temp/1000;
	DrawAscii(x,y,(i+0x30),BLUE,WHITE, NORMAL);
	temp = temp % 1000;
	i = temp/100;
	DrawAscii(x+8,y,(i+0x30),BLUE,WHITE, NORMAL);
	temp = temp % 100;
	i = temp/10;
	DrawAscii(x+16,y,(i+0x30),BLUE,WHITE, NORMAL);
	temp = temp % 10;
	i = temp;
	DrawAscii(x+24,y,(i+0x30),BLUE,WHITE, NORMAL);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -