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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren