atmega8 例程:T1定时器 CTC模式 10ms定时器 1s连续定时

/******************************************************************* 
* 函数库说明:ATMEGA8 T1定时器 CTC模式 10ms定时器 1s连续定时
* 版本: v1.00
* 修改: 庞辉 芜湖联大飞思卡尔工作室
* 修改日期: 2011年08月08日
*
* 说明: 相当于51自动重载模式
*
* 版本更新: 详见readme.txt
*
* 20110805 V1.02
*
********************************************************************
*注意: 6M外部晶振
*******************************************************************
*/

#include <avr/io.h>
#include <avr/interrupt.h>

int main(void)
{
DDRC |= (1 << DDC5);
//10ms定时
ICR1 = 7500;
//OCR1A = 7500;
//使能比较匹配A中断
TIMSK |= (1 << OCIE1A);
//开总中断
sei();
//CTC ICR1模式 8分频 启动CTC
TCCR1B |= (1 << WGM13) | (1 << WGM12) | (1 << CS11);
//TCCR1B |= (1 << WGM12) | (1 << CS11);

return 0;
}

volatile int i = 0;

SIGNAL(SIG_OUTPUT_COMPARE1A)
{
i++;

if(i == 100)
{
i = 0;
PORTC ^= (1 << PC5);
}
}



原文地址:https://www.cnblogs.com/pang123hui/p/2309867.html