Aufwärtszähler LCD

OP #4462376
Lesenswert?
• ▲
▼
Hallo,

Ich habe eine Aufgabe wo ich nicht mehr weiter komme. Programmieren tu 
ich es mit Atmel Studio.

Es ist ein Aufwärtszähler zu programmieren und das Zählerergebnis soll 
auf einem LCD 20x2 angezeigt werden.

Dem Aufwärtszähler ist ein Timer zugrunde gelegt, welcher im 500ms Takt 
hinzuzählt.

Mittels Taster 1 wird der Zähler gestartet und gestoppt und mittels 
Taster 2 kann die Zeit in Schritten verändert werden (100, 200, 300, 
400, 500ms)


Danke im Voraus
#4462389
Lesenswert?
• ▲
▼
Da du schreibst, du kommst nicht mehr weiter, gehe ich davon aus, dass 
du bereits etwas hast. Zeig das doch mal her und dann erzähle uns, wo 
genau du nicht mehr weiter kommst oder fragen hast.
Dann sind wir gerne bereit dir weiter zu helfen. Hausaufgaben macht hier 
niemand für dich, aber dir helfen die Lösung zu erarbeiten und zu 
verstehen tut hier eigentlich jeder!

Außerdem wäre es gut, wenn du uns Infos zu den Rahmenbedingungen gibst.
Schaltplan
Typbezeichnung der verwendeten Hardware (Mikrocontroller, LCD, usw.)
Deinen bisherigen Quellcode
Was das ganze am Ende können soll, damit wir nicht 5 mal anfangen 
müssen, weil immer noch eine neue Teilaufgabe hinzukommt
Gast #4465866
Lesenswert?
• ▲
▼
Taster1 lässt ein Flag zwischen 0 und 1 toggeln.

Taster2 lässt eine Variable timer_Intervall zwischen 100,200,300,400 und 
500 wechseln.
1
*// Timer-Interrupt
2
Counter += counter_flag;
3
LCD_Anzeige(Counter);
4
return;
5

6
*// Hauptprogramm
7
while(1){
8
Taster1();
9
Taster2();
10
Timer_set(timer_Intervall);
11
}
Gast #4465903
Lesenswert?
• ▲
▼
Peter Z. schrieb:
> aster2 lässt eine Variable timer_Intervall zwischen 100,200,300,400 und
> 500 wechseln.
> *// Timer-Interrupt
> Counter += counter_flag;
> LCD_Anzeige(Counter);
> return;
>
> *// Hauptprogramm
> while(1){
> Taster1();
> Taster2();
> Timer_set(timer_Intervall);
> }

Und das lässt sich fehlerfrei compilieren? :-)

Zeig doch mal das komplette Coding ...
Gast #4465983
Lesenswert?
• ▲
▼
Dieter F. schrieb:

>
> Und das lässt sich fehlerfrei compilieren? :-)
>
> Zeig doch mal das komplette Coding ...

Ich sehe da im Moment keine eklatanten Syntax Fehler.

Ich hab kein "komplettes Coding", wollte nur jemandem der auf dem 
Schlauch steht etwas helfen... tippe auf Android Handy...
(Firma: matzetronics) #4466040
Lesenswert?
• ▲
▼
Peter Z. schrieb:
> *// Timer-Interrupt
> Counter += counter_flag;
> LCD_Anzeige(Counter);
> return;

Es ist schon mal keine gute Idee, eine LCD Ausgabe im Interrupt zu 
machen. Typischerweise ist das nämlich sehr langsam und deswegen am 
besten im Hauptprogramm aufgehoben.

Mein Ansatz wäre ein 100ms Ticker per Timer Interrupt, der nach dem 
1.,2. oder soundsovielten Aufruf den Zähler inkrementiert und ein Flag 
setzt.
Das Hauptprogramm sieht das gesetzte Flag, frischt die Anzeige auf und 
löscht das Flag.
Im Hauptprogramm kann man noch die einfache Tastenabfrage machen.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.