1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 11:29:58 +03:00
betaflight/mw-svn/LED.cpp
2012-02-16 09:39:58 +00:00

54 lines
1.3 KiB
C++
Executable file

#if defined(LED_RING)
#define LED_RING_ADDRESS 0xDA //8 bits -- my initial :)
void i2CLedRingState()
{
uint8_t b[10];
static uint8_t state;
if (state == 0) {
b[0] = 'z';
b[1] = (180 - heading) / 2; // 1 unit = 2 degrees;
i2c_rep_start(LED_RING_ADDRESS);
for (uint8_t i = 0; i < 2; i++)
i2c_write(b[i]);
i2c_stop();
state = 1;
} else if (state == 1) {
b[0] = 'y';
b[1] = constrain(angle[ROLL] / 10 + 90, 0, 180);
b[2] = constrain(angle[PITCH] / 10 + 90, 0, 180);
i2c_rep_start(LED_RING_ADDRESS);
for (uint8_t i = 0; i < 3; i++)
i2c_write(b[i]);
i2c_stop();
state = 2;
} else if (state == 2) {
b[0] = 'd'; // all unicolor GREEN
b[1] = 1;
if (armed)
b[2] = 1;
else
b[2] = 0;
i2c_rep_start(LED_RING_ADDRESS);
for (uint8_t i = 0; i < 3; i++)
i2c_write(b[i]);
i2c_stop();
state = 0;
}
}
void blinkLedRing()
{
uint8_t b[3];
b[0] = 'k';
b[1] = 10;
b[2] = 10;
i2c_rep_start(LED_RING_ADDRESS);
for (uint8_t i = 0; i < 3; i++)
i2c_write(b[i]);
i2c_stop();
}
#endif