From 9b16b17628a73617dd24aa5e6b338430a101be1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Thu, 13 Oct 2022 16:27:33 +0200 Subject: [PATCH] add master broacast time --- main.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index 9960e8c..c485316 100644 --- a/main.c +++ b/main.c @@ -47,8 +47,10 @@ static volatile uint32_t time_count = 0; // time after last shake to go to sleep, in seconds #define REST_TIME (5 * 60U) -// period to send our color code, in seconds +// period to share our color code, in seconds #define SHARE_TIME (1U) +// period to enforce our color code, in seconds +#define MASTER_TIME (1U) // time counts per us (1/(16E6/(3+1)) * 1000*1000 = 0.25 us) #define NEC_TICKS_PER_US 4UL @@ -467,13 +469,8 @@ void main(void) nec_flag = false; // clear flag action = true; // redo loop } - if (0 == time_count % (488UL * SHARE_TIME)) { - uint32_t code; // code to send - if (master) { - code = 0x02000000; - } else { - code = 0x01000000; - } + if (!master && 0 == time_count % (488UL * SHARE_TIME)) { + uint32_t code = 0x01000000; // code to send code |= ((uint32_t)rgb[0] << 8); code |= ((uint32_t)rgb[1] << 16); code |= ((uint32_t)rgb[2] << 24); @@ -482,6 +479,15 @@ void main(void) putc('t'); action = true; // redo main loop } + if (master && 0 == time_count % (488UL * MASTER_TIME)) { + uint32_t code = 0x02000000; // code to send + code |= ((uint32_t)rgb[0] << 8); + code |= ((uint32_t)rgb[1] << 16); + code |= ((uint32_t)rgb[2] << 24); + nec_transmit(code); + putc('m'); + action = true; // redo main loop + } if (time_count > 488UL * REST_TIME && !master) { puts("rest\r\n"); time_count = 0; // reset counter