... Speedy

A-t-on vraiment accéléré ??

Modifiions Quicky pour y intégrer le MAM:


// ..........................................

//

// Premiers pas dans le monde de l'ARM

//

// Auteur: Fred Microcontrollers and Robotics

// Date : 06 Octobre 2011

//

// Checked : 10 Juillet 2009 22:40

//

// Program_3: Speedy

// ..........................................

#include "lpc210x.h"

#define LED7 (1 << b7)

#define out |

#define PLL_PLOCK (1<<b10) // Bit b10 de PLLSTAT

// Initialisation du MAM

void Init_MAM(void)

{

MAMCR = 0x00; // Désactivation des fonctions MAM

MAMTIM = 0x03; // Clock Cclk > 40MHz => MAM timing: 3

MAMCR = 0x02; // MAM fully enabled

}

// Initialisation de la PLL

void PLL_Init(void)

{

PLLCFG = 0x23; // P= 2 et M=4 => 00100011

PLLCON = 0x01; // Validation PLL

PLLFEED= 0xAA; // Feed sequence

PLLFEED= 0x55;

while(!(PLLSTAT & PLL_PLOCK)); // Attente que la PLL soit vérouillée

PLLCON = 0x03; // Connection de la PLL

PLLFEED = 0xAA; // Feed sequence

PLLFEED = 0x55;

}

// Le port P0.N est mis en sortie

void Led_Init(int N)

{

IODIR = IODIR out N;

}

// La Led n° N est allumée

void Led_On(int N)

{

IOSET = N;

}

// La Led n° N est éteinte

void Led_Off(int N)

{

IOCLR = N;

}

// Attente d'un certain temps défini par T

void Delai(unsigned long T)

{

while (--T!=0);

}

int main(void)

{

IODIR = 0;

PLL_Init();

Init_MAM(); // Init du MAM rajoutée

Led_Init(LED7);

while (1)

{

Delai(200000);

Led_On(LED7);

Delai(200000);

Led_Off(LED7);

}

return(0);

}

Compilez et testez ce programme, le résultat est très impressionnant !!!

Pour mieux se rendre compte de l'influence de la PLL et du MAM, je vous conseille de faire tourner en suivant les trois programmes que nous venons de créer: Blinky, puis Speedy et enfin Quicky.

Jugez en par vous-même...