Forum: Mikrocontroller und Digitale Elektronik Frage Timer aufgabe


von Hammer V. (mad33)


Lesenswert?

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

von Veit D. (devil-elec)


Lesenswert?

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.

von Hammer V. (mad33)


Lesenswert?

Hat jemand tipps wie ich das machen kann ?

von Franz M. (elmo64)


Lesenswert?

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
von Hammer V. (mad33)


Lesenswert?

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 .

von Stefan F. (Gast)


Lesenswert?

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.

von Hammer V. (mad33)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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.

von VIA (Gast)


Lesenswert?


von MaWin (Gast)


Lesenswert?

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.

von Veit D. (devil-elec)


Lesenswert?

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
von Hammer V. (mad33)


Lesenswert?

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
Noch kein Account? Hier anmelden.