Zitat Zitat von Kesandal Beitrag anzeigen
Hallo,

zugegeben... Ich weiß nicht welchen Titel ich wählen soll

Ich habe hier eine Aufgabe aus unserem Kurs bei der ich nicht so recht weiterkomme:



Was ich machen soll ist mir (glaube ich ) klar.
Ich verstehe jedoch nicht was mit dem fett-markierten Satz genau gemeint ist.
Frequenz....
Soll ich hier mit irgendeinem Timer arbeiten? - oder wie stellen sich die Herren das vor


Mein Ansatz ist der folgende:


Code:
 
// includes etc.

int main() {
   DDRC = 0xFF;
   lcd_init();
   unsigned int val = 0;
   while(1){
      lcd_setcursor(0, 0);
      lcd_putdez_uint(val);
      _delay_ms(100);
 
      while ((PINA) == 0xff);
 
      if (PINA & _BV(7)){
         val+=1000;
      }
      if (PINA & _BV(6)){
         val-=1000;
      }
      return 0;
   }
}
Danke im Voraus
kesandal
1:Wenn Taste gedrückt dann Wert = Wert +/- 1
2: Wait xyz s, = Zählfrequenz
3: Taste immer noch gedrückt dann bei 1 Weitermachen
4: .......................

Das wäre die einfachste Form, man kann das natürlich auch mittels Timer IRQ machen und dort die Taste abfragen. Man sollte aber darauf achten genügend Zeit für "einen" Tastendruck zu lassen, sonst zählt das immer gleich mehrmals . Vorteil des IRQ, der Prozessor kann nebenbei noch andere Aufgaben erledigen.

Gruß Richard