pca9685_sample.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. *
  7. * Change Logs:
  8. * Date Author Notes
  9. * 2019-05-15 greedyhao first version
  10. */
  11. #include <rtthread.h>
  12. #include "pca9685.h"
  13. // #define DBG_ENABLE
  14. #define DBG_SECTION_NAME "pca9685"
  15. #define DBG_LEVEL DBG_ERROR
  16. #define DBG_COLOR
  17. #include <rtdbg.h>
  18. #define I2C_BUS "i2c1"
  19. static rt_thread_t tid1 = RT_NULL;
  20. static void pca9685_sample_entry(void *parameter)
  21. {
  22. rt_uint32_t count = 500;
  23. pca9685_device_t dev = RT_NULL;
  24. dev = pca9685_init(I2C_BUS, RT_NULL);
  25. if (dev == RT_NULL)
  26. goto _exit;
  27. pca9685_set_pwm(dev, 0, 0, 306);
  28. pca9685_set_pwm(dev, 1, 0, 500);
  29. pca9685_set_pwm(dev, 2, 0, 1000);
  30. while (count > 0)
  31. {
  32. count--;
  33. rt_thread_mdelay(10);
  34. }
  35. _exit:
  36. pca9685_deinit(dev);
  37. }
  38. int pca9685_sample(void)
  39. {
  40. tid1 = rt_thread_create("pca9685_sample",
  41. pca9685_sample_entry, RT_NULL,
  42. 512, 25, 10);
  43. if (tid1 != RT_NULL)
  44. rt_thread_startup(tid1);
  45. return 0;
  46. }
  47. #ifdef FINSH_USING_MSH
  48. MSH_CMD_EXPORT(pca9685_sample, a pca9685 sample);
  49. #endif