找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7200|回復: 0
打印 上一主題 下一主題
收起左側(cè)

AVR單片機定時器TIME0普通定時實驗程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:26188 發(fā)表于 2015-6-23 15:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*很簡單的問題費了好大的勁,注意中斷向量地址和向量號的區(qū)別,*/
/*這樣的是時鐘節(jié)拍可以搞到微秒級的,太好了這樣對以后搞操作系統(tǒng)是很管用的,節(jié)拍直接影響CPU的利用效率*/
/*節(jié)拍器越小,時間片就越準確,對于整個系統(tǒng)的統(tǒng)一是絕對有意義的,*/
/*AVR定時器普通定時實驗   0415    天津第四項目部宿舍 */

#include <iom16v.h>
#define uchar unsigned char
#define uint unsigned int
#define set_bit(a,b)  a|=(1<<b)
#define clr_bit(a,b)  a&=(1<<b)
#define get_bit(a,b)  a&(1<<b)
uint i;
#pragma interrupt_handler time0_isr:10
void time0_isr()//定時計數(shù)器0溢出中斷
{
i++;
if(i==6400)//中斷時間為1.25*6400=8000微秒=8毫秒
{
PORTC^=0x80;//輸出方波T=8*2=16毫秒
i=0;
}
else
    TCNT0=245;  //重裝計數(shù)器初值      

}
void int_time0()//定時器0設(shè)置初始化
{
   SREG=0x80;
    TCNT0=245;//這里我采用RC震蕩8M時鐘,1分頻后周期是0.125微秒,計數(shù)為255-245=10次所以就=10*0.125=1.25微秒,中斷一次是1.25微秒
   TIMSK=0x01;
   TCCR0=0x01;//工作在普通模式,時鐘1分頻,開啟定時器
}
void main()
{
DDRC=0xff;
PORTC=0;
int_time0();
while(1);


}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表