furi-hal-light.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <furi-hal-light.h>
  2. #include <lp5562.h>
  3. #define TAG "FuriHalLight"
  4. #define LED_CURRENT_RED 50
  5. #define LED_CURRENT_GREEN 50
  6. #define LED_CURRENT_BLUE 50
  7. #define LED_CURRENT_WHITE 150
  8. void furi_hal_light_init() {
  9. lp5562_reset();
  10. lp5562_set_channel_current(LP5562ChannelRed, LED_CURRENT_RED);
  11. lp5562_set_channel_current(LP5562ChannelGreen, LED_CURRENT_GREEN);
  12. lp5562_set_channel_current(LP5562ChannelBlue, LED_CURRENT_BLUE);
  13. lp5562_set_channel_current(LP5562ChannelWhite, LED_CURRENT_WHITE);
  14. lp5562_set_channel_value(LP5562ChannelRed, 0x00);
  15. lp5562_set_channel_value(LP5562ChannelGreen, 0x00);
  16. lp5562_set_channel_value(LP5562ChannelBlue, 0x00);
  17. lp5562_set_channel_value(LP5562ChannelWhite, 0x00);
  18. lp5562_enable();
  19. lp5562_configure();
  20. FURI_LOG_I(TAG, "Init OK");
  21. }
  22. void furi_hal_light_set(Light light, uint8_t value) {
  23. switch(light) {
  24. case LightRed:
  25. lp5562_set_channel_value(LP5562ChannelRed, value);
  26. break;
  27. case LightGreen:
  28. lp5562_set_channel_value(LP5562ChannelGreen, value);
  29. break;
  30. case LightBlue:
  31. lp5562_set_channel_value(LP5562ChannelBlue, value);
  32. break;
  33. case LightBacklight:
  34. lp5562_set_channel_value(LP5562ChannelWhite, value);
  35. break;
  36. default:
  37. break;
  38. }
  39. }