zigenpeter
08.12.2008, 13:52
hallo
ich weis das dieses thema schon sehr oft hier besprochen wurde aber leider finde ich nicht die richtige antwort .
Ich habe folgendes Problem ich hab den Ir sensor / empfänger des Asuro wie bei vielen schon beschreiben noch vorne gerichtet und umgebaut .
Nur mit dem Programm hab ich ein Problem und zwar hab ich den test Code aus dem Forum aufgespielt und sie klappt auch auf dem Asuro nur möchte ich das er bei erkennung eines hindernis nicht die Farbe der Satus LED ändert sondern stoppt und nach rechts solange dreht bis kein Hinderniss mehr da ist und dann wieder geradeaus weiter fährt !! Leider weis ich nicht wie ich dies in den Code einfügen kann
Hier der Code :
#include "asuro.h"
#include <stdlib.h>
int main(void)
{
unsigned char sw;
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
while(1)
{
if (PIND & (1 << PD0))
StatusLED(GREEN);
else
StatusLED(RED);
sw = PollSwitch();
if (sw & 0x01)
OCR2 = 0xFE; //Pulsbreite 1
if (sw & 0x02)
OCR2 = 0xFD; //Pulsbreite 2
if (sw & 0x04)
OCR2 = 0xFB; //Pulsbreite 4
if (sw & 0x08)
OCR2 = 0xF7; //Pulsbreite 8
if (sw & 0x10)
OCR2 = 0xEF; //Pulsbreite 16
if (sw & 0x20)
OCR2 = 0x90; //Pulsbreite 110
}
return 0;
}
ich weis das dieses thema schon sehr oft hier besprochen wurde aber leider finde ich nicht die richtige antwort .
Ich habe folgendes Problem ich hab den Ir sensor / empfänger des Asuro wie bei vielen schon beschreiben noch vorne gerichtet und umgebaut .
Nur mit dem Programm hab ich ein Problem und zwar hab ich den test Code aus dem Forum aufgespielt und sie klappt auch auf dem Asuro nur möchte ich das er bei erkennung eines hindernis nicht die Farbe der Satus LED ändert sondern stoppt und nach rechts solange dreht bis kein Hinderniss mehr da ist und dann wieder geradeaus weiter fährt !! Leider weis ich nicht wie ich dies in den Code einfügen kann
Hier der Code :
#include "asuro.h"
#include <stdlib.h>
int main(void)
{
unsigned char sw;
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
while(1)
{
if (PIND & (1 << PD0))
StatusLED(GREEN);
else
StatusLED(RED);
sw = PollSwitch();
if (sw & 0x01)
OCR2 = 0xFE; //Pulsbreite 1
if (sw & 0x02)
OCR2 = 0xFD; //Pulsbreite 2
if (sw & 0x04)
OCR2 = 0xFB; //Pulsbreite 4
if (sw & 0x08)
OCR2 = 0xF7; //Pulsbreite 8
if (sw & 0x10)
OCR2 = 0xEF; //Pulsbreite 16
if (sw & 0x20)
OCR2 = 0x90; //Pulsbreite 110
}
return 0;
}