User manual
Entwicklung eines großen Programms Seite: 53/152
© Laser & Co. Solutions GmbH Benutzerhandbuch SiSy
5.3.4 Units (Unterprogramme) anlegen und verknüpfen
Zur Gliederung des großen Programms wird dieses in mehrere kleine Einheiten (Units
bzw. Module) zerlegt. Diese Einheiten werden nach fachlichen/inhaltlichen Gesichts-
punkten gebildet. So kann man alle Initialisierungsaufgaben in der Unit „init“ zusammen-
fassen. Eine Unit kann aus einer Funktion/Unterprogramm oder mehreren Funktio-
nen/Unterprogrammen bestehen. Im einfachsten Fall enthält jede Unit ein Unterpro-
gramm. Legen Sie zusätzlich zur Hauptunit „main“ die Unit „init“ an.
Die Hauptunit benutzt die Unit „init“. Daher ist eine Verbindung von der Hauptunit „main“
zur Unit „init“ zu ziehen. Selektieren Sie die Unit „main“ und ziehen vom Verteiler (rot)
eine Verbindung auf die Unit „init“. Dabei wird in der Hauptunit „main“ ein Include-
Eintrag für die Unit „init“ erzeugt:
.include "init.s"
Erstellen Sie die Initialisierungsroutine für die benötigten digitalen Ein und Ausgänge in
der Unit „init“:
;----------------------------------------
init: push r16
sbi DDRB,0 ; B.0 Ausgang
cbi PORTB,0 ; B.0 LED aus
cbi DDRD,2 ; D.2 Eingang
sbi PORTD,2 ; D.2 PullUp
pop r16
ret
;----------------------------------------
Ergänzen Sie den Code des Hauptprogramms:
…
rcall init
;-----------------------------------
mainloop: sbic PIND,2
rjmp led_aus
led_an: sbi PORTB,0
rjmp mainloop
led_aus: cbi PORTB,0
rjmp mainloop
;-----------------------------------
.include “init.s“