MODDING-FAQ FORUM

Alles rund ums Modden => Elektronik, Elektrik => Thema gestartet von: Mugazombi am März 27, 2007, 20:18:05



Titel: ATMega 8 Program
Beitrag von: Mugazombi am März 27, 2007, 20:18:05
Guten Abend,
Ich sollte in der Schule mit einem ATMega 8 einen kleinen Zähler programmieren.
Über 2 Tasten soll gezählt werden.
Die 1. muss permanent gedrückt sein (Schlüsselersatz).
mit der 2. sollte dann gezählt werden.
Pro Tastendruck um einen Hochzählen.
Und je nach dem welche Zahl anliegt sollte eine Gewisser Anweisungsbock ausgeführt werden.
Hab mir die letzten 6 schulstunden den kopf zerbrochen und bin mit lehrer auf keine lösung gekommen. Vieleicht könnt ihr mir ein wenig unter die Arme greifen ;)


Titel: Re: ATMega 8 Program
Beitrag von: TzA am März 27, 2007, 20:34:16
ähm, superbillig?
Code:
#define tasterport PORTA
#define key 0
#define knopf 1

int main()
{
  char pressed;
  char counter;
  while(1)
  {
      if(pressed && !(tasterport & _BV(knopf))) pressed=0;
      if(!pressed && (tasterport & _BV(knopf)) && (tasterport & _BV(key)))
      {
        counter++;
        switch counter
        {
            case 0:
                Anweisung für 0; break;
            case 1:
                Anweisung für 1; break;
            case 3:
                Anweisung für 3; break;
        }
      }
  }
  return 0;
}

Bis auf das switch-case, was ich sonst kaum verwende, mal so eben schnell aus dem Kopf hingeschrieben. Das Programm ist in der Form noch mies (du sollst ja auch noch was selber machen), da die Taster nicht entprellt sind. Außerdem sehe ich grade, dass ich das mit dem Schlüssel falsch verstanden habe, aber du musst halt die Überprüfung auf den Schlüssel in der zweiten if-Anweisung rausnehmen, und um den ganzen Block die Überprüfung drumsetzen (also dass knopf nur getestet wird, wenn key an ist).

Das der Code hier in einer Endlosschleife läuft, sollte eigentlich nicht weiter stören, wenn diese Anweisungen jeweils nur kurz laufen. Eleganter wirds natürlich, wenn man die Tasterabfrage über einen Interrupt macht, dann kann der Controller auch sonst noch was tun.


Titel: Re: ATMega 8 Program
Beitrag von: Mugazombi am März 28, 2007, 12:07:46
ok danke,
wir haben erst angefangen mit der µC Programmierung und ich kenn mich da echt nicht aus ;)
Dann werd ich das morgen ausprobieren
Danke!
:edit!
Hat funktioniert! Danke!


© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.