User manual

Entwicklung eines großen Programms Seite: 59/152
© Laser & Co. Solutions GmbH Benutzerhandbuch SiSy
5.4.4 Units (Unterprogramme) anlegen und verknüpfen
Zur Gliederung des großen Programms wird dieses in mehrere kleine Einheiten (Units/
Module) zerlegt. Diese Einheiten werden nach fachlichen/inhaltlichen Gesichtspunkten
gebildet. So kann man alle Initialisierungsaufgaben in der Unit „init“ zusammenfassen.
Eine Unit kann aus einer Funktion/Unterprogramm oder mehreren Funktionen/Unter
programmen bestehen. Im einfachsten Fall enthält jede Unit ein Unterprogramm.
Legen Sie zusätzlich zur Hauptunit „main“ die Unit „init“ an.
Die Hauptunit benutzt die Unit „init“. Daher ist eine Verbindung von „main“ zur „init“ zu
ziehen. Selektieren Sie „main“ und ziehen vom Verteiler (rot) eine Verbindung auf „init“.
Dabei wird in der Hauptunit „main“ ein Include-Eintrag für die Unit „init“ erzeugt. Prüfen
Sie diese Eintragung; ggf. ergänzen Sie diese.
Erstellen Sie die Initialisierungsroutine für die benötigten digitalen Ein- und Ausgänge in
der Unit „init“. Nutzen Sie bei der Quellcode-Eingabe die Codevervollständigung, wie
bereits im Kapitel 4.3 („Vorgehen für ARM Produkte“ – kleines Programm) beschrieben.
#include "init.h"
void initApplication()
{
SysTick_Config(SystemCoreClock/100);
// weitere Initialisierungen durchführen
/* GPIOG Periph clock enable */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
/* Configure PG6 and PG8 in output pushpull mode */
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}