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

舊雨新知9的個(gè)人空間 http://www.qingdxww.cn/space-uid-41802.html [收藏] [復(fù)制] [RSS]

博客

定時(shí)器學(xué)習(xí)小結(jié)

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

關(guān)于溢出中斷不管是哪個(gè)單片機(jī)都是不斷累加,使其寄存器溢出觸發(fā)中斷,然后跳轉(zhuǎn)到中斷函數(shù)處執(zhí)行中斷服務(wù)程序。對(duì)于定時(shí)器初值的設(shè)定可以加深對(duì)定時(shí)器的工作原理的理解。

       ATMega16 里面有8位和16位兩種定時(shí)器,他們何時(shí)會(huì)溢出這個(gè)是固定的,也就是到達(dá)他們的計(jì)數(shù)范圍的最大值就會(huì)產(chǎn)生中斷,8位的定時(shí)器的最大計(jì)數(shù)范圍是0~25628次方),就是累加到256后他就會(huì)產(chǎn)生中斷,16位的定時(shí)器最大計(jì)數(shù)范圍是0~65536216次方),累加到65536時(shí)他就會(huì)產(chǎn)生中斷。

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

      定時(shí)器不僅可以定時(shí),而且我們用到定時(shí)器的時(shí)候往往是需要精確定時(shí)的時(shí)候。我們可以計(jì)算出我們?cè)O(shè)定的初值會(huì)在多長(zhǎng)時(shí)間后進(jìn)入中斷。

下面的是8位定時(shí)器設(shè)定的時(shí)候需要用的寄存器:

實(shí)驗(yàn)平臺(tái):ATMega16    

晶振:      11.0592 MHz

對(duì)初值的計(jì)算:

                     111059200 / 1024 = 10800              設(shè)定為1024倍分頻 ,得到每1秒需要進(jìn)行多少次累加

                     210800 / 100 = 108                          得到10ms 的定時(shí)需要進(jìn)行多少次累加

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

                     4148 <==> 0x94                                得到十六進(jìn)制值,賦值給TCNT0

實(shí)驗(yàn)代碼: 定時(shí)10ms

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

TCNT0 = 0x94;                           //
賦計(jì)數(shù)初值
  
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
重復(fù)100次,即為1
      {
        PORTB_Bit0 = ~PORTB_Bit0;         //
LED閃爍
        flag = 0;
      }
    }
}
      

實(shí)驗(yàn)平臺(tái):ATMega16

晶振:11.0592

16位定時(shí)器初值設(shè)定:

         111059200 / 256 = 43200   設(shè)定256倍分頻,得到每1秒需要進(jìn)行多少次累加

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

         322336 <==> 0x57    0x40   得到十六進(jìn)制值,賦值給TCNT1H   , TCNT1L

實(shí)驗(yàn)代碼:   定時(shí)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;
      }
    }
}

 


路過

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

facelist

您需要登錄后才可以評(píng)論 登錄 | 立即注冊(cè)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 免费jjzz在线播放国产 | 两个人在线观看免费下载 | 日韩视频网 | fc2共享免费视频播放 | 国产三级国产精品国产普男人 | 一级特黄色毛片免费看 | 成人免费网站视频ww | 青青青青青草原 | 青草视频免费观看在线观看 | 成 人 色综合 | 欧美 自拍偷拍 | 色yeye成人免费视频 | 国产伦精一区二区三区 | 69视频在线免费观看 | 免费看片aⅴ免费大片 | 日本黄色免费网站 | 黄色片免费在线观看视频 | 99玖玖爱视频在线观看 | 日本肉动漫在线 | 国产成人免费高清激情视频 | 4hu影院永久在线播放 | 高清毛片在线看高清 | 男女啪啦猛视频免费 | 久久99精品视香蕉蕉 | 国产在线成人一区二区 | 亚洲一级理论片 | 成人免费视频在 | 极品美女一区二区三区 | 中文字幕一区二区三区四区五区 | 日本精品久久久久中文字幕 1 | 亚洲欧美在线精品一区二区 | 国产精品2 | 在线视频亚洲欧美 | 日本不卡在线观看 | 国产欧美亚洲精品综合在线 | 2021最新四虎永久免费 | 亚洲欧洲免费 | 四虎影业 | 亚洲综合色秘密影院秘密影院 | 亚洲综合插插 | 日韩欧美中 |