Ich bauch mal wieder Hilfe von den Profis,
in meinem Programm wird mit zwei Tastern durch die verschiedenen
Menüebenen von meinem Display durchgetrippt.
Nun hat mein Display eine Hintergrundbeleuchtung die ich einschalten
will.
Das ganze soll so funktionieren, immer wenn Taster1 oder Taster2 benützt
wird um das Menüe zu betätigen soll die Hintergrundbeleuchtung (Ausgang
auf High) gesetzt werden, so ca 1min lang.
Immer wenn einer der beiden Taster betätigt wird soll die Zeit wieder
von vorn anfangen.
Hier ein paar teile von meinem Programm das es bischen verständlicher
wird:
int tasterabfrage1()
{
if (PINB & (1<<0))
{
while (!(PINB & (1<<0)));
taster1++;
while ((PINB & (1<<0)));
}
return(0);
}
int tasterabfrage2()
{
if (PINB & (1<<1))
{
while (!(PINB & (1<<1)));
taster2++;
while ((PINB & (1<<1)));
}
return(0);
}
switch (taster1)
{
case 1:
case 2:
switch (taster2)
{
case 1:
case 2:
}
}
ja und so weiter..
Ich hoffe ich hab das einigermasen vertändlich rüber gebracht.
Hoffe von euch hat da einer ne gute Idee.
Danke schonmal im voraus
Gruß Mucky
Gast
#1704422
Wenn du nen Timer interrupt hast, kannst du einen Zählwert in eine Veriable laden, die du bei jedem Interrupt um 1 runterzählst. Ist sie Null, wird das Backlight ausgemacht, ansosnten an. Nun einfach im Programm bei jedem Tasterdruck die Variable mit dem Startwert belegen.
Gast
#1704740
Hallo Flo, könntest du das für mich als Beispiel ganz grob als C-Code schreiben?? Gruß solo
Gast
#1704759
Was benutzt du den für einen AVR? Hast du schon mal mit Interrupts gearbeitet, wenn nein, kannste dich hier mal einlesen http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmieren_mit_Interrupts Wenn du mal deinen bereits vorhandenen Code hier als File hochlädst, lässt sich schauen, ob der ganz einfach zu modifizieren ist. :D
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.