📄 time01._c
字号:
/*AD转换需要隔段时间采样一次,用这个方法可以粗略实现1秒定时,
我也时刚刚学习AVR 吧刚做的拿出来和新入门的朋友分享 或许有
帮助。存在问题的地方还请朋友门多斧正。*/
//***********************************
//函数功能:基准时间100MS 总计定时1S
//编译器类型及版本:ICCAVR 6.31
/************************************************************************/
#include<iom8v.h> //包含定义ATmega8寄存器的头文件
#include<macros.h> //包含一些常用的宏定义
#pragma interrupt_handler TIME0:10 //中断向量号码
char i=0; //调整累加基准定时次数的全局变量
//***********************************************************************/
//主函数
void main()
{TCCR0=0X05; //时钟1024分频
TCNT0=0X3A; //定时器计数初始值 100ms
TIMSK=0X01; //允许定时器0中断
SEI(); //开全局中断
DDRB=0XFF;
DDRD=0XFF;
PORTB=0Xff;
PORTD=0XFF;
}
//***********************************************************************/
//定时器中断函数
void TIME0()
{if(i<10) //i决定循环基准时间的次数
{TCNT0=0X3A; //重设初始值 100ms
i++; //累加基准时间
}
else
{PORTD^=BIT(0); //翻转PD口电平
i=0; //定时全局变量恢复初始值
}
}
//结束******************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -