... 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...