Ich habe für das ARM Evalboard mein ein kleines I/O Testprogramm geschrieben. Das Programm ist nix wildes. Es schaltet die LED an Pin PI0 ein. Über den Schalter an PH1 werden dann die LEDs an Pins abwechselnd ein und aus.
Was man noch verbessern könnte ist den Schalter zu entprellen aber ich wollte das Programm möglichst einfach und übersichtlich halten.
Vielleicht kann der ein oder andere sich so ja was abgucken.
Für Verbesserungsvorschläge bin ich natürlich auch gerne zu haben… ich will ja auch noch was lernen:
/*****************************************************************************/
/* test.c: Simple IO Tester */
/******************************************************************************/
/* KEIL MCBTMPM330 IO TEST Software by DL8STW */
/******************************************************************************/
#include „TMPM330.H“ // TMPM330 definitions
int main (void) { // Main Program
short int mem=0; // Memory for LED status
SystemInit(); // SystemInit Funktion
/* Setup I/O */
PH->PUP = 0x02; // PH.1 with enabled Pull-up
PH->IE = 0x02; // PH.1 as Input (Push Button)
PI->CR |= 0x07; // PI.0 and PI.1 as Output
PI->DATA |= 0x07; // PI.0 and PI.1 Off
for (;;) { // Loop forever
PI -> DATA &= ~ 0x01; // LED an PH.0 On
if (!(PH->DATA & 0x02)&& mem == 0) // If PH.1 is pressed and mem=0
{
mem=1;
PI -> DATA &= ~0x02; // PH.2 on
PI -> DATA |= 0x04; // PH.2 off
}
else if (!(PH->DATA & 0x02)&& mem == 1)// If PH.1 is pressed and mem=1
{
mem=0;
PI -> DATA |= 0x02; // PH.2 on
PI -> DATA &= ~0x04; // PH.2 off
}
}
}