User manual
Entwicklung eines kleinen Programms Seite: 45/152
© Laser & Co. Solutions GmbH Benutzerhandbuch SiSy
Quellcode in C erstellen
Das Blinklicht soll über die LEDs angezeigt und von dem Prozessorport GPIOD gesteu-
ert werden. Die Realisierung erfolgt über GPIO Pin 12 und 13. Dieses wird mit dem Be-
fehl Bit-Rotation nach rechts verschoben und an den Port GPIOD des Prozessors aus-
gegeben. Auf Grund der Prozessorgeschwindigkeit muss die Ausgabe des Blinklichtes
für unser Auge verzögert werden. Geben Sie folgenden Quellcode ein bzw. ergänzen
Sie die Programmvorlage!
Bei der Eingabe des Quellcodes springt nach drei zusammenhängenden Buchstaben
die Codevervollständigung an
und listet alle Bezeichner fortlau-
fend gefiltert. Wählen Sie jetzt die
Cursor-Taste mit Pfeil nach un-
ten, Sie können in der Liste rollen
und per Enter einen Eintrag aus-
wählen.
#include <stddef.h>
#include <stdlib.h>
#include "stm32f4xx.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);
}
void delay(vu32 nCount)
{
while(nCount--);
}
int main(void)
{
SystemInit();
initApplication();
GPIO_SetBits(GPIOD,GPIO_Pin_13);
do{
// Eingabe
// Ausgabe
// Verarbeitung
GPIO_ToggleBits(GPIOD,GPIO_Pin_13|GPIO_Pin_12);
delay(10000000);
} while (true);
return 0;
}
extern "C" void SysTickFunction(void)
{
// Application SysTick
}