Hallo,
habe gestern und heute die Erweiterungsplatine zusammengelötet. Dann hab ich folgenden Programmcode geflasht:
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;
}
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.
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
Lesezeichen