Willkommen Gast. Bitte einloggen oder registrieren.
März 17, 2025, 21:17:31
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  Alles rund ums Modden
| |-+  Elektronik, Elektrik (Moderator: TzA)
| | |-+  ATMega 8 Program
  « vorheriges nächstes »
0 Mitglieder und 0 Gäste betrachten dieses Thema.
Seiten: [1] nach unten Drucken
Autor Thema: ATMega 8 Program  (Gelesen 3287 mal)
Mugazombi
Lötkolbenfreak

*

Karma: +1/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 186


AMD Rockt!


Profil anzeigen
ATMega 8 Program
« 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 Wink
Gespeichert

Shuttle SN25P mit AMD Opteron 175 2 GB MDT 2x250Gb Samsung @Raid 0 und ner Galaxy 7800GT
Geht ab wie ne rackete *g*
TzA
Modder der Apokalypse

*

Karma: +10/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1166



Profil anzeigen
Re: ATMega 8 Program
« Antwort #1 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.
Gespeichert

You need only two tools. WD-40 and duct tape. If it doesn't move and it should, use WD-40. If it moves and shouldn't, use the tape
Mugazombi
Lötkolbenfreak

*

Karma: +1/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 186


AMD Rockt!


Profil anzeigen
Re: ATMega 8 Program
« Antwort #2 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 Wink
Dann werd ich das morgen ausprobieren
Danke!
:edit!
Hat funktioniert! Danke!
« Letzte Änderung: März 29, 2007, 15:51:44 von Mugazombi » Gespeichert

Shuttle SN25P mit AMD Opteron 175 2 GB MDT 2x250Gb Samsung @Raid 0 und ner Galaxy 7800GT
Geht ab wie ne rackete *g*
Seiten: [1] nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.02 Sekunden mit 18 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!