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

📄 复件 ttime0.h

📁 我用AVR读取触摸屏
💻 H
字号:
#include <iom32.h>
//清0和置1
#define set_0 0x01 
#define set_1 0x02
#define set_2 0x04 
#define set_3 0x08 
#define set_4 0x10 
#define set_5 0x20
#define set_6 0x40 
#define set_7 0x80 
#define clr_0 0xfe 
#define clr_1 0xfd 
#define clr_2 0xfb
#define clr_3 0xf7
#define clr_4 0xef 
#define clr_5 0xdf 
#define clr_6 0xbf 
#define clr_7 0x7f 
#define set_8 0X100 
#define clr_8 0XFEFF
#define set_9 0X200
#define clr_9 0XFDFF
#define set_10 0X400 
#define clr_10 0XFBFF
#define set_11 0X800
#define clr_11 0XF7FF

#define set_12 0X1000 
#define clr_12 0XEFFF
#define set_13 0X2000
#define clr_13 0XDFFF
#define set_14 0X4000 
#define clr_14 0XBFFF
#define set_15 0X8000 
#define clr_15 0X7FFF
#define c10ms 5
#define c100ms 10
#define c1s 10
class Ttime0
{
  	public:
    	unsigned char uc_t2msyd,uc_t10msyd,uc_t100msyd,uc_t1syd;//公有变量,时间到标志
		unsigned char qzzdsjd;     	//时间中断到
	private:
		unsigned char uc_t10ms,uc_t100ms,uc_t1s; 		//私有变量,时间参数
	public:
		void hspdsj(void);			//公有函数时间初始化
		void hssjcsh(void);			////公有函数判断时间
		void hsqcsjdbz(void);		//公有函数清除时间到标志
};
unsigned char uc_t2msyd =0;
unsigned char uc_t10msyd = 0;
unsigned char uc_t100msyd = 0;
unsigned char uc_t1syd = 0;			//公有变量,时间到标志
unsigned char uc_t10ms = c10ms;
unsigned char uc_t100ms = c100ms; 
unsigned char uc_t1s = c1s; 		
unsigned char qzzdsjd = 0;     	//时间中断到
//私有变量,时间参数
void Ttime0::hspdsj(void)			//公有函数时间初始化
{
	TCCR0 = 0x00; //stop timer
 	TCNT0 = 0x83; //set count value
 	TCCR0 = 0x03; //start timer
}
void Ttime0::hssjcsh(void)			////公有函数判断时间
{
	TIMSK = 0x01;   //timer interrupt sources 
	asm ("cli");
	if(qzzdsjd != 0)     	//时间中断到  
	{
	  	qzzdsjd = 0;     	//时间中断到  
		asm ("sei");
		uc_t2msyd = 1;
		if(uc_t10ms == 0)
		{
		  	uc_t10ms = c10ms;
			if(uc_t100ms == 0)
			{
		  		uc_t100ms = c100ms;
				if(uc_t1s == 0)
				{
		  			uc_t1s = c1s;
				}
				else
				{
		  			--uc_t1s;
				}
			}
			else
			{
		  		--uc_t100ms;
			}
		}
		else
		{
		  	--uc_t10ms;
		}
	}
	asm ("sei");  
}
void Ttime0::hsqcsjdbz(void)		//公有函数清除时间到标志
{
	uc_t2msyd =0;
	uc_t10msyd = 0;
	uc_t100msyd = 0;
	uc_t1syd = 0;			//公有变量,时间到标志
}
#pragma vector=TIMER0_OVF_vect 
__interrupt   void TIMER0_OVF_Server(void) 
{ 
	TCNT0 = 0x83; 		//reload counter value  
 	qzzdsjd = 1;     	//时间中断到  
} 

⌨️ 快捷键说明

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