Forum: Mikrocontroller und Digitale Elektronik Sprung???


von Merle (Gast)


Lesenswert?

Also ich will 3 verschieden Programme gleichzeitig verwenden wie kann 
ich das machen das wenn das 1. Programm fertig ist der MC einfach einen 
Sprung zum 2. Programm macht usw. z.b. so: Prog.1 (Sprung) Prog.2 
(Sprung) Prog.3???

von Chris (Gast)


Lesenswert?

Sind das eigenständige Programme oder Teilprogramme eines 
Hauptprogramms. Was für eine Programmiersparache verwendest du?  Kannst 
du evtl die 3.Programme zu einem ganzen zusammenfassen. In Assembler 
z.B. mit "include".

von Merle (Gast)


Lesenswert?

Ich verwende AVRStudio 4.0 die Assemblersprache. Also man nimmt z.b. 
dieses programm 3 mal hintereinender der einzig unterschied besteht 
darin das bei jedem der 3 Prog's doe I/0 Pins ander angeordnet werden. 
also wie bekomme ich einen Sprung vom 1. dann zum 2. und dann zum 3. 
Programm her???
Kannst du mir da weiterhelfen ??

.include "4433def.inc"

         ldi r16, 0xFF
         out DDRC, r16

         ldi r16, 0b11111100
         out PORTC, r16

ende:    rjmp ende

von Peter D. (peda)


Lesenswert?

Mit Sprüngen macht man das besser nicht, sondern mit Calls.

Dann ist man in der Anordnung flexibler.

Das ganze nennt sich dann Main-Loop (Hauptschleife) und wird bei 99,9% 
aller MC-Programme so gemacht.


main:
rcall programm1
rcall programm2
rcall programm3
;usw.
rjmp main ;und wieder von vorne


Peter

von Merle (Gast)


Lesenswert?

Es funktioniert nicht kannst du mir bitte ein Beispiel schreiben ??

von Frankl (Gast)


Lesenswert?

Die ret (Returns) in den programm 1..3 nicht vergessen. Am Schluss des 
Programms.

von Merle (Gast)


Lesenswert?

Ich bin noch anfänger Bitte schrib mir ein Beispiel mit dem Programm das 
ich dir gezeigt hatte !!!!

von Chris (Gast)


Lesenswert?

z.B.

rjmp main:  (steht am Anfang des programms)

Programm1:
(Dein Code)
ret

Programm2:
(code)
ret

Programm3:
(Code)
ret

main:
rcall programm1
rcall programm2
rcall programm3
rjmp main

(ab hier wird immer main angesprungen, endlosschleife)

von Merle (Gast)


Lesenswert?

Hallo es Funktioniert aber kann mir jemand sagen wie das funktionieren 
könnte: Also zu erst kommt Prog.1 dann 3 sekunden pause dann kommt 
Prog.2 dann 5 sekunden Pause und dann kommt prog.3 und dann wieder 3 
sekunden pause und dann fängt es wieder von vorne an.
Kann Mir bitte jemand einen AVRStudio 4.0 Tüchtigen Assemblercode 
schreiben mit dem ich das mchen könnte??

und noch was könnte mir jemand einen assemblercode schreiben mit dem man 
led's am PortD hin und her leuchten lassen kann wie bei NightRider??
Aber nur wenn es nicgt zu viel Umstände macht!!!

Danke schon im Voraus

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
Noch kein Account? Hier anmelden.