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

標題: stm8s的PWM輸出38KHz源代碼 [打印本頁]

作者: zg211211    時間: 2018-5-7 16:23
標題: stm8s的PWM輸出38KHz源代碼
使用stm8s的TIM2 ,輸出38KHz的PWM
測試TIME2_CH2的PWM,輸出38KHz。
必須放在首次建立工程文件的路徑下編譯,否則無效。
測試TIME1_CH1的PWM,輸出1KHz,可以調PWM。
TIME1_CH1輸出需要更改option bytes:AFR0。


單片機源程序如下:
  1. /******************** (C) COPYRIGHT  風馳電子嵌入式開發工作室 ********************/
  2. #include "pwm.h"
  3. #include "stm8s_tim2.h"
  4. #include "stm8s_tim1.h"

  5. static void Delay(u16 nCount);

  6. void Tim1_PWM_Init(void)
  7. {
  8.   //TIM1復位
  9.   TIM1_DeInit();
  10.   
  11.   //16 MHz/16 分頻= 1 兆赫、向上計數, 1 MHz /1000 =計數 1000
  12.   TIM1_TimeBaseInit( 15, TIM1_COUNTERMODE_UP, 999, 0 );
  13.   
  14.   //初始化捕獲/比較通道1(PWM模式1,啟用輸出比較),
  15.   TIM1_OC1Init( TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE,
  16.                 //啟用互補輸出比較1,脈寬50%,輸出比較極性高電平,
  17.                 TIM1_OUTPUTNSTATE_ENABLE, 499, TIM1_OCPOLARITY_HIGH,
  18.                 //互補輸出比較極性高電平,輸出比較空閑狀態復位,互補輸出比較空閑狀態復//位)
  19.                 TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_SET );

  20.   //啟用定時器
  21.   TIM1_Cmd(ENABLE);

  22.   //允許主輸出????? 移動 TIM1 定時器。選擇 PWM 輸出。
  23.   TIM1_CtrlPWMOutputs(ENABLE);
  24. }

  25. void SetTIM1_PWM_DutyCycle( uint16_t TIM1_Pulse)
  26. {
  27.    /* Set the Pulse value */
  28.     TIM1->CCR1H = (uint8_t)(TIM1_Pulse >> 8);//ch1
  29.     TIM1->CCR1L = (uint8_t)(TIM1_Pulse);  
  30.    

  31. }

  32. void TestTIM1_PWM_LED(void)
  33. {
  34.   u16 Duty_Val;
  35.   for(Duty_Val=0;Duty_Val<999;Duty_Val++)
  36.   {
  37.     SetTIM1_PWM_DutyCycle(Duty_Val);
  38.     Delay(0xfff);Delay(0xfff);
  39.     Delay(0xfff);Delay(0xfff);
  40.   }
  41. }


  42. void Tim2_PWM_Init(void)
  43. {
  44.   
  45.     TIM2_TimeBaseInit(TIM2_PRESCALER_1, 420);
  46.     TIM2_OC2Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,210, TIM2_OCPOLARITY_HIGH);
  47.     TIM2_OC2PreloadConfig(ENABLE);
  48.    
  49.   TIM2_Cmd(ENABLE);
  50. }

  51. void SetTIM2_PWM_Frequency(uint16_t TIM2_Period)
  52. {
  53.       /* Set the Autoreload value */
  54.   
  55.     TIM2->ARRH = (uint8_t)(TIM2_Period >> 8);
  56.     TIM2->ARRL = (uint8_t)(TIM2_Period);
  57. }

  58. void SetTIM2_PWM_DutyCycle( uint16_t TIM2_Pulse)
  59. {

  60.     TIM2->CCR2H = (uint8_t)(TIM2_Pulse >> 8);
  61.     TIM2->CCR2L = (uint8_t)(TIM2_Pulse);

  62. }

  63. void TestTim2_PWM_LED(void)
  64. {
  65.   u16 Duty_Val;
  66.   for(Duty_Val=0;Duty_Val<999;Duty_Val++)
  67.   {
  68.     SetTIM2_PWM_DutyCycle(Duty_Val);
  69.     Delay(0xfff);Delay(0xfff);
  70.     Delay(0xfff);Delay(0xfff);
  71.   }
  72. }

  73. void Delay(u16 nCount)
  74. {
  75.   /* Decrement nCount value */
  76.   while (nCount != 0)
  77.   {
  78.     nCount--;
  79.   }
  80. }


  81. /******************* (C) COPYRIGHT 風馳電子嵌入式開發工作室 *****END OF FILE****/
復制代碼

所有資料51hei提供下載:
TIM2-PWM.rar (255.98 KB, 下載次數: 74)




作者: y9622    時間: 2019-1-27 10:17
“必須放在首次建立工程文件的路徑下編譯,否則無效。"     這是什么道理,如何解決呢?
作者: yyhhgg    時間: 2019-3-28 23:23
樓主,占空比1%怎么修改
作者: lzh7592    時間: 2019-3-29 17:32
沒碰到這樣的問題
作者: lanjinglin    時間: 2020-2-2 20:50
謝謝分享,學習了
作者: MCU2023    時間: 2023-12-11 11:30
非常好。遺憾的是IAR環境。想要個STVD環境的。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 毛片毛片毛片毛片毛片 | 羞羞的视频网站 | 怡红院在线播放 | 亚洲国产成人av | 91观看| 免费av网站在线观看 | 欧美日韩国 | 午夜伦理福利 | 日韩欧美在线视频观看 | 日本在线播放 | 久久理论片 | 欧美一区 | 国产51自产区 | 色香蕉网 | 天天插天天| 神马久久久久久 | 99热亚洲 | 青青草成人在线 | 成人9ⅰ免费影视网站 | 亚洲免费专区 | 国产美女精品视频 | 国产91清纯白嫩初高中在线观看 | 国产超碰人人模人人爽人人添 | 日韩免费网站 | 三上悠亚一区二区 | 97操碰| 中文字幕在线一区二区三区 | 亚洲伊人影院 | 欧美综合一区二区三区 | 欧美一级淫片免费视频魅影视频 | 综合在线视频 | 久久人体视频 | 成年人免费看视频 | 日韩精品在线播放 | 精产国产伦理一二三区 | 特级特黄aaaa免费看 | 在线观看视频一区二区 | 久久成人免费视频 | 香蕉视频国产 | 色婷婷狠狠 | 欧美日韩亚洲视频 |