Forum: Mikrocontroller und Digitale Elektronik Frage Timer aufgabe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Hammer V. (mad33)


Bewertung
-3 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-4 lesenswert
nicht lesenswert
Hat jemand tipps wie ich das machen kann ?

von A. M. (elmo64)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von VIA (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von MaWin (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-2 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.