Hallo,
habe gestern und heute die Erweiterungsplatine zusammengelötet. Dann hab ich folgenden Programmcode geflasht:
Das einzige was er nach dem Booten macht ist die StatusLED auf grün zu stellen und das wars. Keinerlei reaktion auf Bewegungen vor den Sensoren.Code:#include "asuro.h" void LocalInit(void) { TCCR2 = (1 << WGM21) | (1 << CS20); OCR2 = 0x64; ADCSRA = 0x00; ACSR = 0x02; ADMUX = 0x03; SFIOR|= (1 << ACME); DDRD &= ~(1 << 6); } void Ping (unsigned char length) { count72kHz = 0; TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20); while (count72kHz<length) { OCR2 = 0x64 + length / 2 - count72kHz; } TCCR2 = (1 << WGM21) | (1 << CS20); OCR2 = 0x64; } int main (void) { int pos, i; int posmarker; Init(); LocalInit(); while(1) { posmarker = 0; Ping(20); for (pos = 0; pos < 100; pos++) { Sleep(10); if ((ACSR&(1<<ACI)) != 0) { if (posmarker == 0) { posmarker = pos; } } ACSR |= (1 << ACI); } if (posmarker > 10) { StatusLED(GREEN); MotorDir(FWD,FWD); MotorSpeed(200,200); } else { StatusLED(RED); MotorDir(FWD,RWD); MotorSpeed(0,200); for (i = 0; i < 100; i++) { Sleep(200); } } } return 0; }
Woran kann das liegen?
Edit: Hab jetzt nochmal die ganzen Widerstände durchgemessen das nicht einer falsch gelandet ist. Die Verbindungen der Bauelemente auf der Rückseite habe ich auch verfolgt um Fehler aususchliessen. Kurzschlüsse sind ebenfalls keine vorhanden.
MfG
Ezalo







Zitieren

Lesezeichen