Hallo m.a.r.v.i.n,

Zitat von
m.a.r.v.i.n
Hallo Hermann,
wie wäre es damit:
"magic_1"
Code:
USRB = 0; // UART TX disable
OCR2 = 0xF7; // Pulsbreite 8
"magic_2"
Code:
OCR2 = 0x91; // Pulsbreite fuer 36kHz
da das Programm examples/IRCollisionTest der Asuro Library v270rc3 nicht funktioniert, habe ich mich an Dein Posting erinnert und endlich Deinen Vorschlag mit folgendem Programm getestet:
Code:
#include "asuro.h"
char *msgG="GREEN\r\n";
char *msgR="RED\r\n";
char *something=NULL;
int main(void)
{
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
OCR2 = 0xF7; // Pulsbreite 8
while (1)
{
// "magic_1"
UCSRB = 0; // UART TX disable
OCR2 = 0xF7; // Pulsbreite 8
if (PIND & (1 << PD0))
{ StatusLED(GREEN); something=msgG; }
else
{ StatusLED(RED); something=msgR; }
// "magic_2"
OCR2 = 0x91; // Pulsbreite fuer 36kHz
SerPrint(something);
// Msleep(50);
}
return 0;
}
Leider funktioniert es nicht richtig:- ohne SerPrint() ist der LED-Output OK
- mit SerPrint() ohne Msleep() gibt's nur GREEN, unabhängig vom Abstand
- mit SerPrint() und Msleep(50) gibt es ab und zu sogar "Audio" (bell character), und folgenden Output:
Code:
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
GREEN
REEN
GREEN
FREEN
GREEN
GREEN
GREEN
GREEN
FREEN
...
Wieso kommt RED so selten, obwohl ich den Abstand auch klein und groß gemacht habe?
Und vor allem, wieso wird nicht RED in einer Zeile geschrieben, sondern REEN, FREEN, ...?
Lesezeichen