[菜农助学交流] (好心情)NUC120第六帖--PWM

[复制链接]
 楼主| cat_li 发表于 2011-10-4 17:06 | 显示全部楼层 |阅读模式
废话不多说,直接上代码
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /* */
  3. /* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
  4. /* */
  5. /*---------------------------------------------------------------------------------------------------------*/
  6. #include <stdio.h>
  7. #include "NUC1xx.h"
  8. #include "Driver\DrvGPIO.h"
  9. #include "Driver\DrvSYS.h"
  10. #include "DrvPWM.H"
  11. #define LED_PWM_VAL PWMA->CMR0 //通过比较器调节占空比

  12. int main(void)
  13. {
  14. uint16_t ledpwmval=0;
  15. S_DRVPWM_TIME_DATA_T spt;

  16. DrvPWM_Open();
  17. DrvGPIO_InitFunction(E_FUNC_PWM0); // 设置GPA12(即PWM0)为PWM输出
  18. DrvPWM_SelectClockSource(DRVPWM_TIMER0,DRVPWM_HCLK); //为PWM0,PWM1选择时钟源 DRVPWM_HCLK

  19. spt.u8Mode = DRVPWM_AUTO_RELOAD_MODE; //自动装载模式
  20. spt.u8HighPulseRatio = 1; //占空比
  21. spt.u32Frequency = 1000;
  22. //spt.u8ClockSelector = DRVPWM_CLOCK_DIV_1; //时钟分频 u32Frequency =0 时生效
  23. //spt.u8PreScale = 0; //8位预分频0-255 u32Frequency =0时生效
  24. //spt.u32Duty = 0; //u32Frequency = 0,或工作在捕获模式时有效
  25. spt.i32Inverter = 1;

  26. DrvPWM_SetTimerClk(DRVPWM_TIMER0,&spt);
  27. DrvPWM_SetTimerIO(DRVPWM_TIMER0,ENABLE); //使能IO输出
  28. DrvPWM_Enable(DRVPWM_TIMER0,ENABLE); //使能PWM0

  29. //DrvPWM_SetTimerCounter()



  30. //LED_PWM_VAL = 1;

  31. while (1)
  32. {

  33. DrvSYS_Delay(10000);
  34. ledpwmval ++ ;
  35. if (ledpwmval >= 11000)
  36. {
  37. ledpwmval = 1;
  38. }
  39. LED_PWM_VAL = ledpwmval;
  40. };
  41. }


效果就是板子上得L6渐亮

有个疑问,u32Frequency = 1000 但实际上PWM输出频率测量显示540hz,基本上是设置值的一半
换了几个设置都是如此,不知道问题出在哪

工程包就不上传了
hotpower 发表于 2011-10-5 10:18 | 显示全部楼层
工程包上传不了一个是你积分不够,一个是操作不对。
你用批量上传试试。
gagmeng 发表于 2011-10-7 08:05 | 显示全部楼层
应该上传下工程啊
 楼主| cat_li 发表于 2011-10-8 16:32 | 显示全部楼层
我觉得代码比较简单,所以没有上传工程包,既然要求,晚上回去了传一下
关于那个输出频率的问题,谁能帮忙解答一下,谢谢了
williamzjy 发表于 2016-6-22 10:29 | 显示全部楼层
cat_li 发表于 2011-10-8 16:32
我觉得代码比较简单,所以没有上传工程包,既然要求,晚上回去了传一下
关于那个输出频率的问题,谁能帮忙 ...

我也遇到过,主要是你的晶振问题,库函数是依据12M晶振写的,而我把库函数改造一下,就可以了,频率也对了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:正在学习STM32  LM3S [url=http://shop33501731.taobao.com]我的淘宝店铺,欢迎光临[/url] 51开发板PCB免费

13

主题

121

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:正在学习STM32  LM3S [url=http://shop33501731.taobao.com]我的淘宝店铺,欢迎光临[/url] 51开发板PCB免费

13

主题

121

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部