Forum: Projekte & Code Mit Taster Ausgang ca. 1min auf high setzten


von R. K. (mucky)


Lesenswert?

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

von Flo (Gast)


Lesenswert?

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.

von Solo (Gast)


Lesenswert?

Hallo Flo,
könntest du das für mich als Beispiel ganz grob als
C-Code schreiben??

Gruß
solo

von Flo (Gast)


Lesenswert?

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

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.