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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM8單片機PWM應用(IAR)

          STM8單片機PWM應用(IAR)

          作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
          PD3復用功能是TIM2_CC2,正好可以用來測試PWM功能。本例程通過電位器調(diào)整PWM脈寬來調(diào)整接在PD3的LED1亮度。

          #include

          void CLK_init(void)
          {
          CLK_CKDIVR = 0x08; // 16M內(nèi)部RC經(jīng)2分頻后系統(tǒng)時鐘為8M
          }

          void GPIO_init(void)
          {
          PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3輸出
          PD_CR1 = 0x08; // 設置PD3為推挽輸出
          }

          void TIM2_init(void)
          {
          TIM2_CCMR2 = 0x70; // PWM模式 2
          TIM2_CCER1 = 0x30; // CC2配置為輸出
          TIM2_ARRH = 0x03;// 配置PWM分辨率為10位,ARR=0x3FF
          TIM2_ARRL = 0xFF;// PWM頻率=8M/0x03FF=7820Hz
          TIM2_CR1 = 0x01; // 計數(shù)器使能,開始計數(shù)
          }

          本文引用地址:http://www.ex-cimer.com/article/201611/320481.htm

          void ADC_init(void)
          {
          ADC_CSR = 0x03; // ADC輸入引腳AIN3
          ADC_CR1 = 0x01; // ADC開啟
          }

          void Run(void)
          {
          unsigned int value;
          ADC_CSR &= ~0x80;//清除EOC轉換結束標志
          ADC_CR1 |= 0x01; //開始單次轉換
          while(!(ADC_CSR&0x80)); //等待單次轉換完成
          value = ((int)ADC_DRH<<2); // 先讀高8位,默認設置數(shù)據(jù)左對齊
          value |= ADC_DRL; // 再讀低8位
          TIM2_CCR2H = (unsigned char)(value>>8); // 更新CC2比較寄存器
          TIM2_CCR2L = (unsigned char)(value);
          }

          void init_devices(void)
          {
          asm("sim");//禁止中斷
          CLK_init();
          GPIO_init();
          TIM2_init();
          ADC_init();
          asm("rim"); //使能中斷
          }

          void main( void )
          {
          init_devices();

          while(1) Run();
          }



          關鍵詞: STM8單片機PWMIA

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();