Hallo,

die auf UartPutc() basierenden Funktionen
  • void PrintInt (int wert)
  • void PrintLong (long wert)
  • void SerPrint (unsigned char *data)
  • void UartPutc (unsigned char zeichen)
funktionieren gut, wenn man sie separat von der IR-Kollisionsvermeidung einsetzt.

Die IR-Kollisionsvermeideung (IRCollisionTest/test.c.) funktioniert gut (IR-Hindernisvermeideung, IR-Höhenmesser, ...), wenn man sie separat von auf UartPutc() basierenden Funktionen einsetzt.

Frage:
Gibt es "magic_1" und "magic_2", damit folgender Code funktioniert?
Code:
...
Init();

DDRD |= (1 << DDD1);  // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
OCR2  = 0xF7;         // Pulsbreite 8

while (1)
{
  "magic_1"

  if (PIND & (1 << PD0))
    StatusLED(GREEN);
  else
    StatusLED(RED);

  "magic_2"

  SerPrint(something);
}
...