Hi Worfox,
willkommen im Forum.
Das Programm im Buch funktioniert leider nicht. Hier im Forum gibt es aber mehrere die laufen.
Tip: Verwende zuerst das Programm zur Einstellung des Potis.
Ich habe die Ultraschall-Erweiterung für den Asuro gebaut und das im Buch "Mehr Spaß für Asuro Band 1" beschriebene Programm drauf geflasht.
Doch der ASURO fährt nur rückwärts im Kreis.
Ich habe auch schon auf Kürzschlüsse usw. nachgeschaut und am Trimmer gedreht. Doch nichts passsiert.
Wenn ich die platine entferne und den asuro ohne platine starte passiert das selbe.
Könnt ihr mir helfen, vieleicht ist auch nur ein Bauteil defekt?
Hi Worfox,
willkommen im Forum.
Das Programm im Buch funktioniert leider nicht. Hier im Forum gibt es aber mehrere die laufen.
Tip: Verwende zuerst das Programm zur Einstellung des Potis.
vielen dank für die schnelle antwort
doch leider laufen die anderen programme nicht besser
es kommt nur eine grüne Status-LED
Im Hyperterminal steht US-Test aber nichts weiter
welches programm hast du denn verwendet?
Das Beispielprogramm US-Test aus der Asuro-Bibliothek V2.71
enn bei allen programmen nur eine grüne led kommt - hast du gespeichert bevor du kompiliert hast?
ja habe ich, habe auf fertige hex-files versucht. andere programme gehen ja auch nur die mit ultraschall nicht
ok.. dann zeig mal den programmcode her
Ich habe den Programmcode verwendet:
Code:#include "asuro.h" void LocalInit(void) { // Change Oscillator-frequency of Timer 2 // to 40kHz, no toggling of IO-pin: TCCR2 = (1 << WGM21) | (1 << CS20); OCR2 = 0x64; // 40kHz @8MHz crystal ADCSRA = 0x00; // ADC off // Analog comparator: ACSR = 0x02; // Generate interrupt on falling edge ADMUX = 0x03; // Multiplexer for comparator to // ADC pin 3 SFIOR |= (1 << ACME); // Enable muliplexing of comparator DDRD &= ~(1 << 6); // Port D Pin 6 is input! } void Ping(unsigned char length) { count72kHz = 0; TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20); // Toggling of IO-Pin on // generate the Chirp while(count72kHz < length) { OCR2 = 0x64 + length / 2 - count72kHz; } TCCR2 = (1 << WGM21) | (1 << CS20); // Toggling of IO-Pin off OCR2 = 0x64; // set frequency to 40kHz } int main(void) { int pos, i; int posmarker; Init(); LocalInit(); while(TRUE) { 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; }
wird er denn nahc dem speichern einwandfrei kompiliert oder gibts fehler/warnings?
Lesezeichen