www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik prog das je nach tastendruck


Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi ich bräuchte ein kleines porg für meinen 2313 mit de mich über einen
tastendruck eine sub weiterschalten kann, al so ne art funktionswahl!

z.b. wenn ich drücke das fuinktion 1 ausgeführt wird, wenn ich nochmal
drücke, funktion 2 usw. und logischerweise nach der letzenten funktion
wieder die erste usw.


ich hab aber keine ahnung wie ich das proggen könnte (am liebsten wär
es mit in assembler)

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

taste1(funktionswahl) gedrückt, variabel höchzählen
taste2(enter) so ne art: if variabel = 1 then goto sub usw...



In Basic könnte ich eine Lösung posten, aber von Assambler hab ich
wirklich (fast) keine Ahnung...


MFG Nik

Autor: Florian Wolling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Du könntest doch theoretisch bei Tastendruck den Inhalt eines Registers
um 1 erhöhen und dann den Inhalt auslesen und je nach Inhalt ein
Unterprogramm aufrufen.

Ich bin zwar auch kein Assemblerass, aber ich denke, dass das ginge!

MFG,
################
Florian Wolling#
################

Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh ich probier grad mal etwas rum da gibt es den recht praktischen
befehl ror und rol der schiebt die werte praktisch durch das wär opimal
aber für genauers von assemblern wär ich sehr dankbar!!!

Autor: Sven Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, soweit ich mich noch an meine Assembler Zeiten erinnere habe ich
so etwas gerne mit einer Sprungtabelle gelöst.
Du kannst hier doch einfach nen Label vor jedes Unterprogramm setzen
und sagen wenn taste gedrückt springe zum nächsten label ..
Habe aber nur 8051 Assembler erfahrung..


Sven

Autor: Florian Wolling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo und guten morgen!
@Sven Müller:
Also diese Idee finde ich gut!

Ich probiere es gleich aus!...

MFG,
################
Florian Wolling#
################

Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm ich bräucht es halt für meinen atmel

Autor: funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du in C programmierst, würde ich es mit einer Bitvariable lösen.

1.Bit: Zustand des Tasters
2.Bit: Speichern des Zustands

Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab es etza so gemacht das zum register immer eins
dazugerechnet wird wenn das register einen bestimmten wert hat springt
er da und da hin usw.

danke für die anregugungen

Autor: Axel (ojojo) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann ich aus einem Interupt irgendwo hinspringen, ohne das er dann
wieder zu seinem ausgangspunkt zurück will ? Das also vor allem der
Interrupt auch wieder freigeschalten ist!

jo
Axel

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ganz einfach: den sprung, den du im interrupt ausführen würdest merken
und nachher in deinem programmablauf (am besten loop) abfragen und
ausführen.

genau das machen, was der reti befehl nach dem interrupt macht. ein
return (das du dir sparst) und das interruptflag zurücksetzen. geht
auch von hand. aber eher gefährlich, ausserdem wie sieht´s dabei mit
dem stack aus? die interrupt procedur wird ja praktisch mit call
aufgerufen... also muss der stack pointer wieder gelöscht werden.

nur so als idee, aber mir währe das zu heikel. leiber den wert merken
und dann ausführen. dann kannst du dir auch sicher sein, das deine
eigentliche routine ausgeführt wird.

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mrniemand:
Schau Dir mal den Befehl "IJMP" an. Mit dem kann man Sprungtabellen
beim Atmel wunderbar realisieren.

Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thkaiser danke aber mein prog funzt so! (die einzel auswählbarer
lauflichter) bleiben sogar gespeichert wenn der avr keinen saft mehr
hat, genau wie die geschwindigkeit (über taste einstelllbar)

Autor: Florian Wolling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Könnste mal das fertige Tasten-Programm in die Codesammlung packen?

Mich würde das Programm interessieren!

MFG,
################
Florian Wolling#
################

Autor: MrNiemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wennst willst schick ich es dir per email aber veröffenltichen tue ich
es ungern weil der code teileweise net so doll is!!!

Autor: Florian Wolling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok!
Herzlichen Dank!

florians-c-e-r-page@onlinehome.de

oder

http://www.florians-c-e-r--page.de

MFG,
################
Florian Wolling#
################

Autor: Florian Wolling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oooooohps!
das sollte http://www.florians-c-e-r-page.de heissen!

Schleichwerbung! g

MFG,
################
Florian Wolling#
################

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.