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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5493|回復: 5
打印 上一主題 下一主題
收起左側

stm8s的PWM輸出38KHz源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:324297 發表于 2018-5-7 16:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用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)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:104974 發表于 2019-1-27 10:17 | 只看該作者
“必須放在首次建立工程文件的路徑下編譯,否則無效。"     這是什么道理,如何解決呢?
回復

使用道具 舉報

板凳
ID:67537 發表于 2019-3-28 23:23 | 只看該作者
樓主,占空比1%怎么修改
回復

使用道具 舉報

地板
ID:500744 發表于 2019-3-29 17:32 | 只看該作者
沒碰到這樣的問題
回復

使用道具 舉報

5#
ID:135730 發表于 2020-2-2 20:50 | 只看該作者
謝謝分享,學習了
回復

使用道具 舉報

6#
ID:1097337 發表于 2023-12-11 11:30 來自手機 | 只看該作者
非常好。遺憾的是IAR環境。想要個STVD環境的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩a| 91久久国产 | 人人色视频 | 日韩 国产 在线 | 国产一区二区在线看 | 精品国产区 | 欧美成人免费在线视频 | 国产一区二区黑人欧美xxxx | 精品乱码一区二区三四区 | 伊人伊人伊人 | av高清毛片 | 精品九九 | 日一日操一操 | 亚洲成人国产 | 亚洲综合一区二区三区 | 亚洲在线 | 日本三级日产三级国产三级 | 在线观看中文字幕视频 | 国产精品美女久久久久久不卡 | 久久久久久免费免费 | 久久国内精品 | 中文字幕一区在线观看视频 | 欧美色视频免费 | 中文字幕在线视频网站 | 成人在线视频网址 | 在线黄 | 久久亚洲一区二区三区四区 | 中文字幕高清 | 欧美aaaaa| 无吗视频 | 国产精品综合色区在线观看 | 一区二区三区在线播放视频 | 久精品久久 | 91高清视频| 中文字幕av色 | 日韩精品在线播放 | 日一区二区 | 日韩国产欧美 | 日韩精品免费在线观看 | 日本一区二区在线视频 | 91久久精品一区二区二区 |