ATMega328P + Arduino + IRMP => Timing-Probleme

OP #6586119
Lesenswert?

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
}
OP #6586177
Lesenswert?

Hallo,

Da habe ich schon nachgeschaut. Es wird sofort das statische Flag 
irmp_irsnd_LedFeedbackEnabled auf false gesetzt und dann noch der LED 
Pin auf OUTPUT und LOW gesetzt. Aber scheinbar grätscht der IRMP 
Interrupt nachträglich rein und missachtet das Flag … obwohl der Code 
für mich erst einmal gut aussieht :-/

salute
Thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren