main.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "pwmdemo"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. --添加硬狗防止程序卡死
  6. if wdt then
  7. wdt.init(9000) -- 初始化watchdog设置为9s
  8. sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
  9. end
  10. -- 测试一
  11. local PWM_ID = 0 -- 代码中使用pwm通道0,如需使用其他pwm通道请查看Air8101/pwm使用指南/pwm通道说明。
  12. sys.taskInit(function()
  13. while true do
  14. -- 开启pwm通道0,设置脉冲频率为1kHz,分频精度为1000,占空比为10/1000=1% 持续输出
  15. pwm.open(PWM_ID, 1000, 10, 0, 1000) -- 小灯微微发光
  16. log.info("pwm", "当前分频精度1000,占空比1%")
  17. sys.wait(1000)
  18. -- 开启pwm通道0,设置脉冲频率为1kHz,分频精度为256,占空比为128/256=50% 持续输出
  19. pwm.open(PWM_ID, 1000, 128, 0, 256) -- 小灯中等亮度
  20. log.info("pwm", "当前分频精度256,占空比50%")
  21. sys.wait(1000)
  22. -- 开启pwm通道0,设置脉冲频率为1kHz,分频精度为100,占空比为100/100=100% 持续输出
  23. pwm.open(PWM_ID, 1000, 100, 0, 100) -- 小灯很高亮度
  24. log.info("pwm", "当前分频精度100,占空比100%")
  25. sys.wait(1000)
  26. end
  27. end)
  28. -- 测试二
  29. --[[
  30. local PWM_ID = 0
  31. sys.taskInit(function()
  32. log.info("pwm", "ch", PWM_ID)
  33. while 1 do
  34. -- 仿呼吸灯效果
  35. log.info("pwm", ">>>>>")
  36. -- 占空比从90%(i=10时)到9%(i=1时)
  37. for i = 10,1,-1 do
  38. pwm.open(PWM_ID, 1000, i*9) -- 频率1000hz, 占空比0-100
  39. sys.wait(100 + i*10)
  40. end
  41. -- 占空比从10%增加到90%
  42. for i = 10,1,-1 do
  43. pwm.open(PWM_ID, 1000, 100 - i*9)
  44. sys.wait(100 + i*10)
  45. end
  46. sys.wait(2000)
  47. end
  48. end) ]]
  49. -- 用户代码已结束---------------------------------------------
  50. -- 结尾总是这一句
  51. sys.run()
  52. -- sys.run()之后后面不要加任何语句!!!!!