国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

舊雨新知9的個人空間 http://m.qingdxww.cn/space-uid-41802.html [收藏] [復制] [RSS]

博客

定時器學習小結

已有 1320 次閱讀2011-7-11 15:08

關于溢出中斷不管是哪個單片機都是不斷累加,使其寄存器溢出觸發中斷,然后跳轉到中斷函數處執行中斷服務程序。對于定時器初值的設定可以加深對定時器的工作原理的理解。

       ATMega16 里面有8位和16位兩種定時器,他們何時會溢出這個是固定的,也就是到達他們的計數范圍的最大值就會產生中斷,8位的定時器的最大計數范圍是0~25628次方),就是累加到256后他就會產生中斷,16位的定時器最大計數范圍是0~65536216次方),累加到65536時他就會產生中斷。

     而我們所謂的計數初值是就是要設定定時器在什么地方開始計數,以8位定時器為例比如:初值為100,所以定時器從100開始累加,累加了156次,加到256后產生中斷,這就是中間消耗的時間和指令周期就是我們要去設定的時間;再比如:初值是200,所以定時器從200開始累加,累加了56次,加到256后產生中斷,可以看到第一定時要累加156次才會中斷而第二次只要累加56次就會產生中斷,顯然第一次設定的時間要比第二次的長。

      定時器不僅可以定時,而且我們用到定時器的時候往往是需要精確定時的時候。我們可以計算出我們設定的初值會在多長時間后進入中斷。

下面的是8位定時器設定的時候需要用的寄存器:

實驗平臺:ATMega16    

晶振:      11.0592 MHz

對初值的計算:

                     111059200 / 1024 = 10800              設定為1024倍分頻 ,得到每1秒需要進行多少次累加

                     210800 / 100 = 108                          得到10ms 的定時需要進行多少次累加

                     3256 - 108 = 148                              計算范圍最大值減去要累加的時間,得到初值,即從哪里開始累加才能在溢出時為10ms的時間。        

                     4148 <==> 0x94                                得到十六進制值,賦值給TCNT0

實驗代碼: 定時10ms

#include <iom16.h>
unsigned char flag = 0;
void timer_init(void)
{
TCCR0 = 0x05;                         //
進行1024分頻

TCNT0 = 0x94;                           //
賦計數初值
  
TIMSK_TOIE0 = 1;                      //
開使能
SREG_I = 1;                               //
開總中斷
}
#pragma vector = TIMER0_OVF_vect
__interrupt void time0_normal(void)

{
    TCNT0 = 0x94;                      //
重新賦初值
    flag++;
}
void main(void)
{
   
timer_init();
    DDRB_Bit0 = 1;
    while(1)
    {
      if(flag == 100)                        //10ms
重復100次,即為1
      {
        PORTB_Bit0 = ~PORTB_Bit0;         //
LED閃爍
        flag = 0;
      }
    }
}
      

實驗平臺:ATMega16

晶振:11.0592

16位定時器初值設定:

         111059200 / 256 = 43200   設定256倍分頻,得到每1秒需要進行多少次累加

         265536 - 43200 = 22336     計算范圍最大值減去要累加的時間,得到初值,即從哪里開始累加才能在溢出時為1s的時間。

         322336 <==> 0x57    0x40   得到十六進制值,賦值給TCNT1H   , TCNT1L

實驗代碼:   定時1s

#include <iom16.h>
unsigned char flag = 0;
void timer_init(void)
{
TCCR1B = 0x04;

TCNT1H = 0x57;
TCNT1L = 0x40;

TIMSK_TOIE1 = 1;
SREG_I = 1;
}
#pragma vector = TIMER1_OVF_vect
__interrupt void time1_normal(void)
{
TCNT1H = 0x57;
TCNT1L = 0x40;

    flag++;
}
void main(void)
{
   
timer_init();
    DDRB_Bit0 = 1;
    while(1)
    {
      if(flag == 1)
      {
        PORTB_Bit0 = ~PORTB_Bit0;
        flag = 0;
      }
    }
}

 


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 成人午夜视频在线播放 | 中文不卡视频 | 在线观看成年美女黄网色视频 | 日本色一区 | 69成年网 | 国产精品福利在线观看免费不卡 | 色在线免费视频 | 精品欧美一区二区vr在线观看 | 日本精品二区 | 欧美午夜片 | 亚洲欧美日韩国产综合高清 | 久久久久久久久66精品片 | 国产成人精品福利色多多 | 久久大胆视频 | 国产亚洲亚洲精品777 | 亚洲欧美日韩一区成人 | 国产精品高清一区二区三区 | 亚洲香蕉在线 | 亚洲好逼 | 91久久国产青草亚洲 | 四虎.com| 老子不卡 | 92手机看片福利永久国产 | 国产久草视频在线 | 日本护士在线视频xxxx免费 | 国产三级观看久久 | 欧美精品成人久久网站 | 国产97免费视频 | se色综合视频 | 香蕉久久国产 | 精品在线视频免费观看 | 小黄鸭视频网站 | 羞羞视频免费网站 | 中文字幕一区日韩在线视频 | 成年人免费黄色片 | 日韩视频免费一区二区三区 | 啦啦啦视频在线观看影院 | 四虎永久在线精品884aa下载 | 久久精品国产91久久麻豆自制 | 色阁五月| 久在线视频 |