Hat keiner eine Idee was ich da machen kann?
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
Hat keiner eine Idee was ich da machen kann?
So... hab nun mal folgendes Programm verwendet:
Dieses Programm gibt den Abstand zwischen Asuro und einem Gegenstand auf dem Terminal aus.Code:#include "asuro.h" #include "ultrasonic.h" int abstand=0; int main(void) { Init(); SerPrint("\r\n --- ultrasonic test ---"); Msleep(1000); do { abstand = Chirp(); SerPrint("\r\n distanz in cm: "); Msleep(500); PrintInt(abstand); } while(1); return 0; }
Als Antwort bekomme ich:
"distanz in cm: 0"
Heißt das nun der Fehler kann nur Hardwareseitig sein? Und wenn ja, wo am ehesten?
MfG
Ezalo
Tjo... und nun? Von euch scheint mir ja keiner Helfen zu können und bei google hab ich auch nix hilfreiches gefunden... Soll ich das Teil jetzt verschrotten?
Ich kenne mich mit c nicht aus, aber zum DO Befehl sollte auch
ein Loop oder ähnlich folgen. Außerdem hast Du zwar Print
Befehle, aber ich kann nichts finden wo Du den Sensor abfragst?
Auch wenn die Lib`s eingebunden sind, müssen die darin
enthaltenen Programme auch aufgerufen werden...?
Gruß Richard
Laut Beschreibung soll
die Sensoren abfragen und mir den Wert in mm zurückgeben.Code:abstand = Chirp();
Könnte jemand der diese Erweiterung hat, mal messen ob am US-Sender und -Empfänger bei Betrieb eine Spannung anliegt? Wenn ja wieviel Volt?
mach doch mal fotos dass wir drübergucken können....
Von was genau willst du da Bilder haben?
von deiner löterei...
weil dir niemand sagen kann ob du nen hardware fehler hast.....
ist wie wenn ich sage ich hab die und die platine un der code hier geht nicht...wo ist das problem.....
da kann auch keiner helfen
Lesezeichen