Schönen guten Abend,
ich nutze zusammen mit der Arduino-Platform die IRMP Library zum
Empfangen von IR commands auf einem ATMega328P 8MHz intern.
Ich habe eine bi-color LED zwischen PD7 und PB0 angeschlossen.
In der einen Richtung dient sie als IRMP-Feedback-LED, in der anderen
als Controller-Status-LED.
In einem bestimmten Moment möchte ich die LEDs abwechselnd blinken
lassen.
Das klappte auch prima, solange ich direkt nach dem
"irmp_irsnd_LEDFeedback(false)" Aufruf noch ein "Serial.print("...")"
zum Debuggen hatte.
Als ich diesen entfernte, stellte ich fest, dass nach dem Aufruf von
"irmp_irsnd_LEDFeedback(false)" IRMP den IRMP_FEEDBACK_LED_PIN nach
~120ms auf LOW setzt.
Kann ich das unterbinden oder muss ich nach
"irmp_irsnd_LEDFeedback(false)" noch einige Zeit warten – und falls ja,
wie lange?
salute
Thomas
1 | #include <Arduino.h>
|
2 |
|
3 | #define CTRL_LED 8
|
4 | #define IRMP_LED 7
|
5 |
|
6 | #define IRMP_INPUT_PIN 6
|
7 | #define IRMP_FEEDBACK_LED_PIN IRMP_LED
|
8 | #include <irmpSelectMain15Protocols.h>
|
9 | #include <irmp.c.h>
|
10 | IRMP_DATA irmp_data;
|
11 |
|
12 | int main(void) {
|
13 | init();
|
14 | pinMode(IRMP_LED, OUTPUT);
|
15 | pinMode(CTRL_LED, OUTPUT);
|
16 |
|
17 | irmp_init();
|
18 | irmp_irsnd_LEDFeedback(true);
|
19 |
|
20 | bool flipflop = 0;
|
21 | while (true) {
|
22 | irmp_irsnd_LEDFeedback(false);
|
23 | Serial.print("...");
|
24 | digitalWrite(flipflop ? CTRL_LED : IRMP_LED, HIGH);
|
25 | delay(1000);
|
26 | digitalWrite(flipflop ? CTRL_LED : IRMP_LED, LOW);
|
27 | irmp_irsnd_LEDFeedback(true);
|
28 | flipflop ^= 1;
|
29 | }
|
30 | return 0;
|
31 | }
|