2 Modulspezifische Initialisierungen

Zahlreiche Schnittstellen, Ports, Variable, etc. müssen vor der ersten Verwendung mit geeigneten Startwerten initialisiert werden. Um auch im Initialisierungsbereich eine transparente Situation vorzufinden wurde eine Namenskonvention eingeführt, um ein einheitliches Vorgehen bei Initialisierungen sicherzustellen.

Es wurde festgelegt, dass in jedem Funktions- und Bibliotheksmodul eine Initialisierungsroutine vorkommen muss, die gleich heißt wie das Modul selber (identisch mit dem Dateinamen der Assemblerdatei ohne Dateierweiterung), an das das Postfix ,,_init'' angehängt wird.

Diese Routine wird im Hauptprogramm im Initialisierungsabschnitt als Unterprogramm aufgerufen. Ist keine spezifische Initialisierung notwendige, besteht diese Routinen nur aus dem Rücksprung in das Hauptprogramm.

Beispiele:
	; File:    RF_Control.asm 
	; Title:   main program for RFac-library functions 
	  ...
	  rcall mainmenu_init ; init menu management
	  rcall rotation_init ; init rotation preferences
	  rcall set_posn_init ; init manual pos setting 
	...
	; File:    mainmenu.asm 
	; Title:   central menu and cursor management module
	; init menu mode 
	; --------------------------------- 
	; initialize menu structures 
	  ... 
	mainmenu_init:
	  STSB  glb_menu_mode, menumode_idle
	  ret
	...
	; File:   rotation.lib 
	; Title:  rotation functions
	  ...
	  LDIWR REG_Z,0x0                      ; initial reset value
	  STSWR rot_angle_preset, REG_Z        ; reset anlge preset value
	  STSWR rot_contrl_minimum, REG_Z      ; minimum speed value
	  STSB  var_valdirection, ValueDirNone ; default rotation is NONE
	  STSB  rotation_mode, ModeSpeedNone   ; rotation mode is NONE
	  STSB  rot_speed_value, 0x00          ; rotation speed is 0
	  ret 
	...
	; File    : set_posn.asm 
	; Title   : manual setting of predefined positions 
	  ...
	; manual control unit initialization 
	; ----------------------- 
	set_posn_init:
	  ret 


Err. 15.11.06: Präfix ,,init_'' vorangestellt
gerhard.reithofer@tech-edv.co.at