Analyse rapide du programme LEDapp.c

 

    On remarque que le programme d'initialisation du système de la carte effectue les procédures minimales. Il configure en particulier le clavier de 8 touches et la matrice de LED. On peut le vérifier en appuyant successivement sur les touches de 1 à 8: une barre verticale de leds s'allume à la position correspondant au rang de la touche pressée:

/*******************************************************************/

/*!
* Boucle principale
*/

void LedApp(void)

{

/* Il est fortement recommandé d'inclure cette fonction pour configurer correctement les broches d'entrée-sortie,
et mettre les senseurs d'accélération et de touches en mode faible puissance */

sys_init();

/* Turn on RTC module */

SCGC2_RTC=1;

/* Set RTC to timeout once a second based on 1khz internal clock (LPO) */

/* See Table 17-6 in MCF51JM128RM */

RTCMOD = 0x00;

RTCSC = 0x1F;

EnableInterrupts;

/* La LED verte clignotte, et visualise les contacts des touches sur la matrice de LEDs */
/* voir les fonctions rtc_interrupt dans ce fichier, et l'IRQ_ISR dans mpr083.c */

while(1)

{

asm("stop #0x2000");

}

}


Fonctions principales de sys_init ()

Initialize system GPIO pins, clock, touch sensor, accelerometer, and USB

Enable STOP instruction

Disable low-voltage detects

Enable the interupt wakeup enable

Enable pullups

Initialize port data so LED Matrix is OFF by default

Init PORTB à PORTG:
Set I2C, IR off, Put the accelerometer to sleep,
Turn off green LED and red LED, Turn off Sounder

Disable battery charging

Use external Crystal at 12MHz

Initialize the touch sensor MPR084_init()

Initialize clock when running off battery power for low-power: 12MHz/8=1.5 MHz