Hey zusammen, ich bin AVR-Anfänger und probiere gerade einen Frequenzzähler auf meinem Atmega8 in C zu programmieren. Da dies jedoch noch nicht funktioniert hat, wollte ich nun erstmal versuchen eine Rechteckfrequenz (0-4,5V) mit Hilfe des Counters 0 zu zählen. Als Frequenz habe ich 100kHz. Ausgegeben wird das ganze über den USART auf den PC, wobei mein Chip auf dem STK500 steckt. Mit meinem Programm würde ich nun erwarten, wenn ich die Frequenz ändere, dass sich auch mein ausgegebener Wert ändert, jedoch bekomme ich nur durchgehend "0". (Das der Zähler relativ häufig überläuft, ist mir klar, jedoch sollte bei verschiedenen Frequenzen nicht immer "0" in TCNT0 stehen.) Vielleich könntet ihr mir helfen, woran es liegt. Danke!
1 | while(1) |
2 | {
|
3 | USART_puts(m); //gibt den Array des Strings m an USART_puts weiter |
4 | _delay_ms(1000); //braucht ein delay, da sonst der USART überläuft |
5 | }
|
Eine Endlosschleife in der Main-Loop... Es wird also immer dein erstes m ausgegeben. Die zweite while-Schleife ist überflüssig.
:
Bearbeitet durch User
Ok super Sache, danke! Jetzt gibt er mir wenigstens Zahlen raus, zwar nicht besonders regelmäßig, aber er reagiert. Dann werde ich mich mal weiter meinem Frequenzzähler widmen, vielleicht ergeben sich hier noch Fragen :)
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.