Hallo zusammen, ich schreibe/bzw. versuche gerade ein (für mich) doch etwas umfangreicheres Prog zu schreiben.Ich hing schon paar mal,aber das Forum hat mir da doch immer weiter geholfen,nur bei meinem folgenden Problem nicht. Zum Hintergrund: Es soll ein μC werden, bei dem ich eine Taste drücke,dann z.bsp. 2s später ein LED leuchtet und diese soll dann 1ßs leuchten.Drücke ich nun in der zwischenzeit den gleichen Taster nochmal,dann bricht das Prog ab und keine LED leuchtet. Das Problem ist dann meine LED gleich bei Tastendruck leuchtet,bring ich dann die Prozedur "zeit2s davor,dann will sie gar ned mehr. Also was mache ich falsch?
Also Quellcode als Bild ist schon mal sehr falsch, wie soll man das assemblieren/simulieren?
Ist das wirklich Ihr Ernst? rcall ohne ret, und das ist nur eines von mindestens einem Dutzend Problemen.
Jokey schrieb: > Hallo zusammen, > ich schreibe/bzw. versuche gerade ein (für mich) doch etwas > umfangreicheres Prog zu schreiben.Ich hing schon paar mal,aber das Forum > hat mir da doch immer weiter geholfen,nur bei meinem folgenden Problem > nicht. > Zum Hintergrund: > Es soll ein μC werden, bei dem ich eine Taste drücke,dann z.bsp. 2s > später ein LED leuchtet und diese soll dann 1ßs leuchten.Drücke ich nun > in der zwischenzeit den gleichen Taster nochmal,dann bricht das Prog ab > und keine LED leuchtet. > Das Problem ist dann meine LED gleich bei Tastendruck leuchtet,bring ich > dann die Prozedur "zeit2s davor,dann will sie gar ned mehr. > Also was mache ich falsch? Mach das AVR Tutorial hier auf der Seite von Anfang an durch und lies das Datenblatt deines Controllers.
Danke schon mal für die Antworten... 1.) auch mit "ret" (was ich leider übersehen habe) funzt es ned 2.) mit dem Bild: ich hab mich da an die vorgabe von hier gehalten, ich hätte es auch gerne in einem anderen format hochgeladen,aber danke dafür hust 3.)das tutorial habe ich bereits durch... 4.)bitte um aufklärung zwecks der dutzend fehler???
Jokey schrieb: > 2.) mit dem Bild: ich hab mich da an die vorgabe von hier gehalten, ich > hätte es auch gerne in einem anderen format hochgeladen,aber danke dafür Wo bitte steht das man Code als Bild hochladen soll?
Jokey schrieb: > 3.)das tutorial habe ich bereits durch... Ja, einmal überflogen oder so. Anständig durcharbeiten!
Also eigentlich kann ich mich Eumel nur anschließen. Aber: Wie sieht denn jetzt das Programm aus? Am besten, nachdem Sie stillgelegte Befehle entfernt haben. Ansonsten z.B.: hinter WGLOOP2: R1 ! ?
@troll: dein comment hilft mir nicht weiter und is auch off-topic... update: mit den zeiten hab ich es jetzt hinbekommen, nur noch nicht mit dem ausbrechen aus der 10s schleife noch nicht
main: ldi r16,lo8(RAMEND) out SPL,r16 ldi r16,hi8(RAMEND) out SPH,r16 ;Hier Init-Code eintragen ;----------------------------------------------------------------------- - cbi DDRB,0 ;b0 auf eingang sbi PORTB,0 ;pullup widerstand sbi DDRB,1 ;b1 auf ausgang sbi DDRC,0 ;c0 auf ausgang(status led) ;----------------------------------------------------------------------- - mainloop: wdr sbi PORTC,0 sbic PINB,0 ;taste auswerten rcall LEDOFF rcall LEDON ;----------------------------------------------------------------------- - LEDON: rcall ZEIT2S sbi PORTB,1 ;zeit-led einschalten rcall ZEIT10S rjmp mainloop ;rcall LEDOFF ret LEDOFF: cbi PORTB,1 ;zeit-led ausschalten rjmp mainloop ret ;----------------------------------------------------------------------- - ZEIT10S: ; delaying 36863838 cycles: ldi R17,246 WGLOOP0: ldi R18,222 WGLOOP1: ldi R19,224 WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; delaying 162 cycles: ldi R17,54 WGLOOP3: dec R17 sbic PINB,0 rcall LEDOFF brne WGLOOP3 ret ; ============================= ZEIT2S: ; delaying 7372782 cycles: ldi R17, 54 WGLOOP4: ldi R18, 185 WGLOOP5: ldi R19, 245 WGLOOP6: dec R19 brne WGLOOP6 dec R18 brne WGLOOP5 dec R17 brne WGLOOP4 ; ----------------------------- ; delaying 18 cycles: ldi R17, 6 WGLOOP7: dec R17 brne WGLOOP7 ret ; =============================
ret, und davor steht rjmp - Jokey, Sie sind entweder ein Troll oder etwas unbedarft. Im letzteren Fall sollten Sie Eumels (wirklich gut gemeinten) Rat befolgen. "Ech ben ein alter Mann und gähe leber fröh ins Bette."
Hi >update: mit den zeiten hab ich es jetzt hinbekommen, nur noch nicht mit >dem ausbrechen aus der 10s schleife noch nicht Wirst du auch nicht so einfach. Und jede Erweiterung wird ein weiterer Krampf. Als Tip: Nimm deinen Thread-Titel mal wörtlich und benutze einen richtigen Timer. Da hast du nämlich unendlich Zeit auch noch etwas anderes zu machen als den Controller mit Delays zu blockieren. MfG spess
danke für eure "kritischen" hinweise...habs selbst hinbekommen....
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.