📄 timer2.c
字号:
/******************************************/
//文件名:Timer2CTC.c
//功能: T/C2的CTC模式的应用
//作者: young
//时间: 2006.10.9
//目标MCU:ATmega8
//晶振: 8MHZ
/******************************************/
#include <iom8v.h>
#include <macros.h>
#include "Delay.h"
//初始化端口
void init_port(void)
{
DDRB = 0x08; //OC2(PB3)设为输出
PORTB = 0xFF;
PORTC = 0x00;
DDRC = 0xFF;
PORTD = 0x00;
DDRD |= 0xFF;
}
//初始化T/C2
void init_timer2(void)
{
TCCR2 = 0x00; //T/C2工作于定时方式,先停止T/C2
TCNT2 = 0x00; //计数初始值0
OCR2 = 0xFD; //设置比较参考值
TIMSK|= 0x80; //打开TOV2的比较匹配中断
//T/C2工作于定时方式CTC(WGM2[1:0]=2),
//比较匹配时触发OC2取反(COM2[1:0]=1),
//系统时钟256分频(CS2[2:0]=0xC)
TCCR2|= (1<<WGM21)|(1<<COM20)|(1<<CS22)|(1<<CS21);
}
//初始化所以硬件
void init_devices(void)
{
CLI(); //关闭全局中断
init_port();
init_timer2();
SEI(); //打开全局中断
}
//主函数
void main(void)
{
init_devices();
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -