📄 复件 ttime0.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 + -