Hey Leute wir benutzen AT Mega und ich hätte eine Frage. Habe den Timer initialisiert: TIMSK I= (1<< T0IEO); TCCR0 I= (1<<CSo2)I (1 << CSo1) I (1<< CS00); Bei Timer wait() muss ich den Zählregister auf 0 zurück setzen und der Timer wartet mittels Polling auf Überlauf Ereignis ? Hat jemand ne Idee wie ich das machen kann? Meine teilweise Idee sieht so aus: timer_wait(){ TCNTO = 0x00; // 0 bis 255 TCCRO &= ((1<<WGMO1) I (1<<WGMO0)} } weiter komme ich nicht
Hey Hammer, ich fahre ein Auto. Was muss ich tanken und wo muss das rein? Weiter komme ich nicht. Ich brauch Sprit, Hilfe. Merkste was? Abgesehen ist dein Syntax falsch.
Hammer V. schrieb: > Frage Timer aufgabe > Hey Leute wir benutzen AT Mega und ich hätte eine Frage. Klingt nach Hausaufgabe, die wir für dich lösen sollen. Was für ein geheimer Atmega ist den das? Hammer V. schrieb: > Hat jemand tipps wie ich das machen kann ? Timer einmal initialisieren und den Timer Overflow Interupt benutzen. Dann müsstest du nichts pollen. Veit D. schrieb: > Abgesehen ist dein Syntax falsch. Nicht nur die, es gibt auch Unstimmigkeiten bei den Bit- und Registerbezeichnungen. Vor Allem was "NULLen" und "Ohs" anbelangt. Da aber der Atmega geheim ist, eventuell imaginär, oder der TO die so definiert haben könnte, kann es auch stimmen. Dir scheinen Grundlagen zu fehlen. -> AVR-GCC-Tutorial und ein C-Buch Außerdem empfehle ich dir die Lektüre des Datenblattes wärmstens.
:
Bearbeitet durch User
Es handelt sich um den AT Mega 128 Ich habe nur nicht so viel Ahnung von dem Thema daher frage ich Es ist keine Hausaufgabe .
Was du a oben gezeigt hast, ist kein C. Nur mit viel Phantasie kann man erahnen, was das mal werden soll. Die Sprache musst du alleine lernen. Dafür gibt es Bücher und Tutorials. Wir werden hier nicht für dich persönlich ein ganzes Buch abschreiben oder Privatunterricht erteilen. Bei konkreten Fragen helfen wir gerne, aber dein Problem ist momentan, das du Sprache C nicht einmal ansatzweise drauf hast und damit fehlt uns die gemeinaame Grundlage zur Kommunikation. Am bester lernst du die Sprache übrigens zunächst auf einem PC. Mikrocontroller sollten erst danach kommen, weil die noch ein gehöriges Stück schwieriger sind.
A. M. schrieb: > Hammer V. schrieb: >> Frage Timer aufgabe >> Hey Leute wir benutzen AT Mega und ich hätte eine Frage. > > Klingt nach Hausaufgabe, die wir für dich lösen sollen. > Was für ein geheimer Atmega ist den das? > > Hammer V. schrieb: >> Hat jemand tipps wie ich das machen kann ? > > Timer einmal initialisieren und den Timer Overflow Interupt benutzen. > Dann müsstest du nichts pollen. > > Veit D. schrieb: >> Abgesehen ist dein Syntax falsch. > > Nicht nur die, es gibt auch Unstimmigkeiten bei den Bit- und > Registerbezeichnungen. Vor Allem was "NULLen" und "Ohs" anbelangt. Da > aber der Atmega geheim ist, eventuell imaginär, oder der TO die so > definiert haben könnte, kann es auch stimmen. > > Dir scheinen Grundlagen zu fehlen. -> AVR-GCC-Tutorial und ein C-Buch > Außerdem empfehle ich dir die Lektüre des Datenblattes wärmstens. Timer initialisiert habe ich ja. Wie benutze ich diesen Timer Overflow Interupt?
Hammer V. schrieb: > Timer initialisiert habe ich ja. Nein hast du nicht. Das kann man ja nicht einmal compilieren! Aus Sicht des Compilers hast du da die Sprache Kauderwelsh verwendet, er versteht aber nur C. Selbst mit menschlicher Intelligenz ist der Quelltext zu fehlerhaft und unvollständig, um Sinn zu ergeben. Komme bitte erst mal so weit, dass du einen Quelltext hast, der ohne Warnungen compilierbar ist und zeige uns den dann - und zwar vollständig.
AVR-GCC-Tutorial/Die Timer und Zähler des AVR https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR
Hammer V. schrieb: > und der Timer wartet mittels Polling auf Überlauf Ereignis ? Der Timer setzt ei Überlauf Ereignis ein Flag TOV0 in TIFR. Nach dem du TCNT0 auf 0 gesetzt hast, könnte das aber nch gesetzt sein, du musst es löschen, bevor zu in einer polling Schleife auf das erneute 1-sein wartest. Wie man es löscht steht hier: http://www.physik.uni-regensburg.de/studium/edverg/elfort/C_KURS_Atmel_Programmieren/Timer_Counter.htm Übringens ist es beim Programieren nicht egal ob man O, 0 oder o schreibt.
Hallo Hammer, leider hast du meine Antwort in deinem Style nur halb verstanden. Wir wissen jetzt das es sich um einen ATmega128 handelt. Wir wissen auch das der Syntax den du zeigst nicht kompiliert. Du schreibst jedoch das du den schon initialisiert hast, was jedoch so nicht sein kann, dass wissen wir auch. Also nochmal. Ist das Gezeigte bis jetzt dein einziger Code oder kannst du den gesamten Code zeigen der wenigstens kompiliert? Oder ist das Gezeigte nur eine Theorie wie der Code einmal aussehen könnte? Was soll der Timer überhaupt machen? Hast du schon einmal C programmiert? Und sag mal bitte was du für Aufgaben löst wenn man das im Zusammenhang mit deinem 2. Thread sieht. Hier C und dort Assembler? Sind das nicht doch Hausaufgaben? Sei bitte ehrlich, dann wirds leichter.
:
Bearbeitet durch User
Ich habe doch bei der anderen Aufgabe die Musterlösung gepostet . Wieso soll es dann eine Hausaufgabe sein :) Ich lerne daran . Nur hier habe ich keine Lösung
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.