这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » T/C1 CTC模式精确定时

共1条 1/1 1 跳转至

T/C1 CTC模式精确定时

高工
2015-06-14 11:12:33     打赏
//延时一毫秒 
void DelayMs(uint16_t) 

   uint16_t i; 
   for(i=0;i<t;i++) 
      _delay_loop_2(CPU_FRQ * 4);//CPU_FRQ为系统时钟频率以MHz为单位 
}
 
/******************************************** 
Timer1 CTC 模式精确定时示例 
文件名:main.c 
编译:WinAVR-20070525 

硬件环境:CA-M8X 
时钟:外部4MHz 
打开的开关如下 
S6(1,2) - 外部4MHz晶振 
S1(7) - PB0接LED 

芯艺设计室 2004-2007 版权所有 
转载请保留本注释在内的全部内容 
Email: changfutong@sina.com 

本程序按0.5秒改变一次接PB0口的LED 
状态来说明T/C1 CTC模式精确定时 
********************************************/ 
#include <avr/io.h> 
#include <avr/interrupt.h> 

#define FLASH_R_LED PORTB^=_BV(PB0) 

//系统时钟:4000000Hz 分频:64 
//CTC TOP值:0x7A12 
//误差:0.000000个系统周期 

//Timer1初始化 
void Timer1Init(void) 

TCCR1A=0; 
TCCR1B=_BV(WGM12)|_BV(CS10)|_BV(CS11); 
OCR1A=0x7A12; 
TIMSK|=_BV(OCIE1A); 


//Timer1 CTC中断,此中断发生周期是:500毫秒 
ISR(TIMER1_COMPA_vect) 

FLASH_R_LED; 


int main(void) 

DDRB|=_BV(PB0); 
Timer1Init(); 
sei(); 
while(1); 
}


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]