Anfänger braucht Hilfe, Ledsteuerung

OP #2146924
Lesenswert?

Hallo ich bin ganz neu im Bereich Microprozessoren und wollte euch 
deshalb um eure Hilfe bitten !

Ich habe zwar in der Schule assembler gelernt aber das ist leider zu 
lange her :(

Also es geht darum ich will über einen Taster eine Led ansteuern und 
zwar wie folgt:

Taster kurz gedrückt led aktiviert sich für 30 sekunden

Tester nochmals gedrückt wieder 30 sekunden

Taster 2 Sekunden gedrückt Led schaltet sich an und bleibt an.

Taster nochmals 2 Sekunden gedrückt Led geht aus und aktiviert wieder 
das mit den 30 Sekunden

Ich habe es versucht zu prgrammieren und kann es aber leider erst 
ausprobieren wenn ich alles zusammen habe, muss mir alles neu kaufen für 
AVR

Könntet ihr vielleicht kurz in das Programm sehen ob das so 
funktionieren kann ?

MFG Daniel
Angehängte Dateien:
OP #2147313
Lesenswert?

danke allerdings habe ich es schon gelesen ! unter anderem habe ich auch 
mit diesen tutorial mein programm geschrieben. aber wie gesagt ich bin 
ganz am anfang mit assembler, und ich denke für die meisten von euch war 
es am anfang sicher auch einfacher bzw. hilfreich wenn mal ein profi 
drüber schaut und tipps gibt ob das so gehen kann oder nicht ?


mfg daniel
#2147350
Lesenswert?

Leider ist das Programm ohne groeseren Zeitaufwand nicht zu 
durchschauen.
Ein paar Sachen: In der Interruptroutine das Statusregister sichern. In 
der Interruptroutine nicht in eine Endlos-Sleep Schleife springen.
-----
  LEDON:
    sbis PORTB,1 ;Überspringe wenn Led an ist  ?
    cbi PORTB,1 ;schalte led an      ?
    rjmp LEDOFF  ?

  LEDOFF:
    sbi PORTB,1 ; Led ausschalten
    reti ;zurück zu interrupt ?
??? keine Ahnung.
-----

zum AVR Studio:
mit F10/F11 kann man einzelne Befehle durchgehen. Die Zeitschleife kann 
man ueberspringen - Cursor an das Ende setzen und rechte Maustaste und 
entweder RUN TO CURSOR ( Zeitschleife wird abgearbeitet, dauert aber 
auch ne Weile) oder SET NEXT STATEMENT ( Zeitschleife wird uebersprungen 
).
OP #2147986
Lesenswert?

Hey danke erstmal für eure Antworten ! MIt ihnen ist mir schon sehr viel 
geholfen :-) wie ich durch euch bemerkt habe stimmt da wohl so einiges 
nicht was mir auch noch nicht ganz klar ist ! Ich werde das Programm mal 
komplett neu aufbauen mit all euren Tipps und werde mich auch nochmal 
mit dem Tutorial was interrupt und Stack betrifft ausseinandersetzen.

ich werde es dann nochmal posten ich hoffe dann sehr vereinfacht !

Mfg Daniel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren