<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機頻率計設(shè)計 頻率輸入源STM32口

          AVR單片機頻率計設(shè)計 頻率輸入源STM32口

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏

          uint i; //定時器1秒到時變量
          uint tt; //計數(shù)頻率
          uchar start=1; //定時器啟動變量

          void port_init()
          {
          PORTA=0xff;
          DDRA=0xff;
          PORTB=0xff;
          DDRB=0xff;
          PORTC=0xff;
          DDRC=0xff;
          PORTD=0xff;
          DDRD=0xff;
          }

          void delay(uint k)
          {
          while(k--);
          }



          void time0_init() //定時器0初始化
          {
          TCCR0=0x00; //關(guān)閉定時器
          TIMSK|=0x01; //定時器0溢出中斷
          TCNT0=0x83; //定時1ms
          SREG=0x80; //關(guān)閉總中斷
          }

          #pragma vector = 0x24 //定時器0中斷
          __interrupt void tim0_ovr()
          {
          i++;
          TCNT0=0x83;
          if(i==1000) //1秒時間到
          {
          i=0;
          TCCR1B=0x00; //停止計數(shù)
          TCCR0=0x00; //停止定時
          tt=TCNT1;//頻率值給變量
          TCNT1H=0x00;
          TCNT1L=0x00; //計數(shù)清零
          TCNT0=0x83; //定時器初值
          start=1; //開啟定時器啟動變量
          }
          }



          void time1_init()
          {
          TCCR1A=0x00;
          TCCR1B=0x00; //停止計數(shù)
          TCNT1H=0x00;
          TCNT1L=0x00;
          }

          void show(uint dat) //頻率值顯示
          {
          PORTA=seg[dat/1000];
          PORTC=tab[3];
          delay(100);
          PORTA=seg[dat%1000/100];
          PORTC=tab[2];
          delay(100);
          PORTA=seg[dat%100/10];
          PORTC=tab[1];
          delay(100);
          PORTA=seg[dat%10];
          PORTC=tab[0];
          delay(100);
          }

          void main()
          {
          port_init();
          time0_init();
          time1_init();
          while(1)
          {
          if(start==1)
          {
          TCCR0=0x03; //定時器開啟
          TCCR1B=0x06; //計數(shù)器開啟
          start=0; //保證定時1秒是否開啟變量
          }
          show(tt);
          }
          }

          //-------------------STM32代碼-------------------------

          #include
          #include "sys.h"
          #include "delay.h"
          #include "usart.h"
          #include "led.h"

          int main()
          {
          Stm32_Clock_Init(9);
          delay_init(72);
          led_init();
          while(1)
          {
          LED=1;
          delay_ms(2);
          LED=0;
          delay_ms(2);
          }
          }

          //--------------------------led.c--------------
          #include
          #include "led.h"

          void led_init(void)
          {
          RCC->APB2ENR|=1<<4; //使能PC時鐘
          GPIOC->CRH&=0xffffff0f;
          GPIOC->CRH|=0x00000030;
          GPIOC->ODR|=1<<9;
          }

          //----------------------led.h-------------------------
          #ifndef led_h
          #define led_h
          #include "sys.h"

          #define LED PCout(9)

          void led_init(void);
          #endif


          上一頁 1 2 下一頁

          關(guān)鍵詞: AVR單片機頻率計STM3

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();