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)
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
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# ################
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!!!
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
Hallo und guten morgen! @Sven Müller: Also diese Idee finde ich gut! Ich probiere es gleich aus!... MFG, ################ Florian Wolling# ################
Wenn du in C programmierst, würde ich es mit einer Bitvariable lösen. 1.Bit: Zustand des Tasters 2.Bit: Speichern des Zustands
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
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
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.
@mrniemand: Schau Dir mal den Befehl "IJMP" an. Mit dem kann man Sprungtabellen beim Atmel wunderbar realisieren.
@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)
Hallo! Könnste mal das fertige Tasten-Programm in die Codesammlung packen? Mich würde das Programm interessieren! MFG, ################ Florian Wolling# ################
wennst willst schick ich es dir per email aber veröffenltichen tue ich es ungern weil der code teileweise net so doll is!!!
Ok! Herzlichen Dank! florians-c-e-r-page@onlinehome.de oder http://www.florians-c-e-r--page.de MFG, ################ Florian Wolling# ################
Oooooohps! das sollte http://www.florians-c-e-r-page.de heissen! Schleichwerbung! g MFG, ################ Florian Wolling# ################
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.