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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.