AVR單片機(jī)GCC編程:定時(shí)器的基本操作
掃描二維碼
隨時(shí)隨地手機(jī)看文章
以下為定時(shí)器的查詢工作方式,不會(huì)發(fā)生中斷請(qǐng)求:
#include
int main(void)
{
//8位定時(shí)器時(shí)間計(jì)算 T=(256-初值) * 脈沖周期
int i;
TCNT0 = 55;//設(shè)置初值
TCCR0 |= (1 << CS01);//8分頻
for (i = 0; i < 10000; i++)
{
while(!(TIFR & TOV0));//對(duì)T/C0溢出標(biāo)志進(jìn)行判斷,溢出后自動(dòng)清零,不發(fā)生中斷.
}
}
以下工作方式,會(huì)發(fā)生溢出中斷請(qǐng)求:
#include
#include
volatile unsigned int i = 0;//注意,必須有volatile
int main(void)
{
//8位定時(shí)器時(shí)間計(jì)算 T=(256-初值) * 脈沖周期
TCNT0 = 55;//設(shè)置TC0初值
TIMSK |= (1 << TOIE0)//TC0溢出中斷使能
sei();//全局中斷使能
TCCR0 |= (1 << CS01);//8分頻,啟動(dòng)定時(shí)器
while(1);
}
SIGNAL (SIG_OVERFLOW0)//TC0溢出中斷服務(wù)程序
{
TCNT0 = 55;//重設(shè)TC0初值
i++;
if (cnt >= 1000)
{
}
}