Hallo zusammen!
Haben die ganze US-Platine nochmal mit einem Durchgangsprüfer durchgetestet. Scheint alles in Ordnung zu sein. Dann haben wir uns noch einmal den Source-Code vorgenommen. Genau aus dem Buch abgeschrieben:
Jedoch gibt er uns beim maken 1 Error. (Siehe Attachment)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; }
Ist doch komisch. Uns ist schon klar, dass die Variable nicht deklariert ist, aber als was soll sie deklariert werden? Int? Float? Char? Und die andern Sachen auch.
Haben keine Ahnung...
Sind für jede weitere Anregung dankbar!
mfg







Zitieren
Lesezeichen