Hallo, ich versuche einen Datenlogger mit einem ATmega 8A aufzubauen. Ich habe mir den Beitrag durchgelesen und den Source-Code angeschaut. Sehr hilfreich, danke! Das Beispiel ist mit einem ATmega 8 http://www.mikrocontroller.net/articles/AVR_FAT32#Der_Status Schaltung aufgebaut wie im Beispiel. Ich habe allerdings einige Probleme mit dem Code: Zunächst hatte ich Probleme mit den Timer-Registern, die haben im Code andere Bezeichnungen als im Datenblatt des ATmega 8 und des 8A. Die habe ich entsprechend des AVR-Datenblattes angepasst. Original: static void timer0_init(){ TimingDelay = 0; // initialisierung der zaehl variable TCCR0A = 1<<WGM01; // timer0 im ctc mode TIMSK0 = 1<<OCIE0A; // compare interrupt an TCNT0 = START_TCNT; // ab wo hochgezaehlt wird, OCR0A = TOP_OCR; // maximum bis wo gezaehlt wird bevor compare match TCCR0B = PRESCALER;// wenn prescaler gesetzt wird, lauft timer los sei(); // interrupts anschalten, wegen compare match } Angepasst: static void timer0_init(){ TimingDelay = 0; // initialisierung der zaehl variable TCCR1A = (1<<WGM12); // timer0 im ctc mode TIMSK = (1<<OCIE1A); // compare interrupt an TCNT0 = START_TCNT; // ab wo hochgezaehlt wird, OCR1A = TOP_OCR;// maximum bis wo gezaehlt wird bevor compare match TCCR1B = PRESCALER;// wenn prescaler gesetzt wird, lauft timer los sei(); // interrupts anschalten, wegen compare match } Dann bin ich noch total erstaunt, dass der uC mir nur über eine Baudrate von 600 antwortet, im Quelltext steht doch 9600 ?!? hatte jmd das selbe Problem? "// Wenn auf dem terminal "Boot... OK" zu lesen ist, ist Init OK." Und ich bekomme immer nur "\nBoot" als Antwort, das aber in regelmäßigen Abständen. Woran kann das liegen, bei euch funktionierts doch überall, ich habe ja am Quelltext quasi nichts verändert. Hatte es mit drei verschiedenen SD-Karten probiert, alle standartformatiert, immer mit dem gleichen Ergebnis. Hat jmd von euch Erfahrungen mit dem Source-Code "AVR Version 0.6.4" vom oben Beschriebenen Link? Ich danke euch im Voraus für eure Antworten. Grüße Johannes
Johannes schrieb: > Dann bin ich noch total erstaunt, dass der uC mir nur über eine Baudrate > von 600 antwortet, im Quelltext steht doch 9600 ?!? hatte jmd das selbe > Problem? na wenn das kein Zufall ist 9600 / 600 = 16 vermutlich einfach nur ein falscher F_CPU gesetzt.
Du hast schonmal den Timer falsch angepasst. Johannes schrieb: > TCCR1A = (1<<WGM12); // timer0 im ctc mode WGM12 steht in TCCR1B, TCCR1A ist Timer/Counter 1 Johannes schrieb: > TCNT0 = START_TCNT; // ab wo hochgezaehlt wird, ist das Register für Timer/Counter 0.
Ja das war eigendlich eine Antwort in einem anderen Beitrag. Kann hier gelöscht werden. War ein Fehler von mir, sry. Ist parallel bei Daniel R. im FAT32 Beitrag gestellt. Beitrag "Re: MMC SD library FAT16 FAT32 read write" Aber trotzdem schon mal vielen Dank für eure Antworten! Ihr dürft im Beitrag siehe Link gerne weiter antworten, thx. Gruß Johannes
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.