久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2092|回復: 0
收起左側

求救,AVR單片機捕捉測速不能清零

[復制鏈接]
ID:278017 發表于 2018-1-20 14:24 | 顯示全部樓層 |閱讀模式
1黑幣
外部時鐘8M,捕捉中斷T1采用8分頻,這樣每個時鐘周期為8us,一個65535記錄的最長時間為524280us,定時器0和定時器2用于顯示
現在高轉速還有低轉速都能正常顯示,但當轉速沒有的時候,不能清零,我也是初學者,弄了好幾天了,求教各位大神,幫幫忙。
//ICPC1捕捉中斷的時候,T1的初始化
void tc1_init()
{
                 TCCR1B=0X43;//64分頻,
                 TIMSK1=0X21;
                 SREG|=0X80;
               
}

#pragma interrupt_handler TC1_yichu:10  //T/C1溢出中斷   
void TC1_yichu()
{
          ov_counter++;
         
}
#pragma interrupt_handler TC1_buzhuo:7  //T/C1捕捉中斷    發動機轉速  
void TC1_buzhuo()
{
          if(icp_n==1)  //測量一個信號的時間
          {        
                        falling_edge=ICR1L;
                        temp=ICR1H;
                        falling_edge|=temp<<8;
                        
                        TCNT1H=0;
                        TCNT1L=0;
                        buhuobiaozhiwei=1;
                        
               
                        TIMSK1=0X00;           //這個必須要,不是時間就是亂的               
          }
          else if(icp_n==0)
      {
                        rising_edge=ICR1L;
                        temp=ICR1H;
                        rising_edge|=temp<<8;   //上升沿的時間
          }
          icp_n++;
        
}

void T2_init()
{
                 TCCR2A=0X0C;  //外部時鐘 ,64分頻,CTC模式  8M/64=125khz
                 TCNT2=0X00;
                 //OCR2A=0X63;    //OCR2A=0X63(99),(99+1)/1000=0.1MS
                OCR2A=0XF9;    //2MS
                 TIMSK2|=0X02;
}

#pragma interrupt_handler t2:5     
void t2()
{                           
         T2_yichu=1;
         SEI();// 開中斷,允許中斷嵌套,T/C0中斷可打斷該中斷服務        
        display();                                          
}

/////////////主函數////////////////////
void main()
{

                 DDRD &=~(1<<PD0);  //方向輸?
                 PORTD|=BIT(0);  //方向輸?
                 tc1_init();
                 T2_init();
                 IO_init();         
                 uart_init(9600);
                 SREG|=BIT(7);                        //全局中斷開放

                 while(1)
                 {               
                          if(buhuobiaozhiwei)   //完成一次測量
                          {
                                       
                                        if(falling_edge >=rising_edge)
                                        {
                                             pulse_clocks = (ulong)falling_edge -(ulong)rising_edge;
                                             
                                        }
                                        else
                                        {
                                             pulse_clocks = (ulong)falling_edge -(ulong)rising_edge+(ulong)ov_counter*65535*8;

                                        }
                                       
                                        pulse_clocks=pulse_clocks*8;
                                        fadongjizhuansu=60000000/pulse_clocks;                                       
                                fadongjizhuansu_TXB=fadongjizhuansu;
                                       
        
                                        icp_n=0;        
                                        TIFR1=0X21;
                                        TIMSK1=0X21;        
                                        ov_counter=0;        
                                    buhuobiaozhiwei=0;
                                    if(T2_yichu)//顯示
                                    {
                                         freq_to_disbuff();
                                             T2_yichu=0;
                                          
                                    }
                          }
                        
                        
                        
                        
                          caiji_data();
                          uart_TXB();
                                
                          delay_MS(100);
        
                 }
}

回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品免费一区二区 | 一区二区国产精品 | 久久88 | 激情婷婷成人 | 欧美日韩综合 | 日韩高清中文字幕 | 成人福利| 午夜免费视频 | 久久久精品一区二区 | www.国产.com| 九九色综合 | 男人的天堂久久 | 久久久.com | 91国内精品久久 | 国产免国产免费 | 国产欧美三区 | 91视频在线观看免费 | v亚洲 | a久久| 91视频三区| 日韩在线一区二区三区 | 久久精品国产一区 | 天天插天天操 | 精品国产一区二区在线 | www日日日 | 综合中文字幕 | 久久精品在线 | 欧美国产激情 | 国产精品一区二区欧美 | 成人免费在线播放视频 | 日本成人毛片 | 久久免费精品 | 欧美日韩高清在线一区 | 欧美 中文字幕 | 国产在线视频一区二区 | 亚洲福利一区 | 国产精品久久久久久久岛一牛影视 | www.黄色在线观看 | 超碰激情 | 久久久久国产精品免费免费搜索 | 日本特黄a级高清免费大片 国产精品久久性 |