Als Programm verwende ich folgendes, welches ich mir im Netz heruntergeladen habe. Da war ne .hex-Datei mit dabei und wenn ich es flashe--funktioniert auch alles.
Wenn ich den Code kopiere, und in meine Testdatei einfüge, compilliere, und dann flashen will passiert nix.
Woran kann das liegen?? Ich benutze die neueste Lib.
Code:// ******************************************* // * Ultraschall für ASURO * // * Roboter versucht Hindernissen * // * auszuweichen * // * Achtung: asuro.c ist geändert * // * (c) 2005Robin Gruber * // * Details zum Code in: * // * "Mehr Spaß mit ASURO, Band I" * // ******************************************* #include "asuro_us.h" void LocalInit(void) { // Change Oscillator-frequency to 40kHz, no toggling of IO-pin TCCR2 = (1 << WGM21) | (1 << CS20); OCR2 = 0x64; // 40kHz @8MHz // ADC off ADCSRA = 0; // Analog Comparaot ACSR = 0x02; // Generate Interrupt on falling Edge ADMUX=0x03; // Multiplexer for Comparator to ADC pin 3 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; int posmarker; int odata[2]; Init(); LocalInit(); while(1) { // OdometrieData(odata); 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); BackLED(OFF,OFF); MotorSpeed(200,200); } else { StatusLED(RED); MotorDir(FWD,RWD); BackLED(ON,ON); MotorSpeed(0,200); Sleep(20000); } } return 0; }







Zitieren

Lesezeichen