La programmation des microcontrôleurs est quelque chose de long, tout comme le développement des circuits imprimés associés (du fait de la multitude de connections). C’est pour cette raison que j’ai essayé de réaliser un petit module polyvalent comprenant un uC et son alimentation. Pour ce qui est de la partie logicielle, j’ai développé un mini système d’exploitation pour rendre plus facile et rapide le développement de petits programmes (et permettre le multi-tâches).
Voici quelques exemples d’application:
Mesures (5 canaux, max 10 échantillonnage/s, résolution de 22 bits) et enregistrement sur carte SD.
Contrôle de processus, rétroaction.
Par exemple dans le cas d’un système de chauffage, le module uC peux commander le corps de chauffe (sortie PWM par exemple) en utilisant une sonde de température pour la contre-réaction (connectée directement sur un canal analogique du module uC).
Avec le système de menu, l’utilisateur peux par exemple modifier via un clavier la température, le temps, la vitesse d’élévation de la température, etc.
Le microcontrôleur choisi est de la famille PIC32MX de microchip. A la fois puissant (32 bits, 80 [MHz]) et bien documenté (quoi qu’il serait plus juste de dire mieux que pour certains autres fabricants).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /*===========================================================================================*/ /* Timer 45 Manuel Tschumi 9 06 2008 9 06 2008 (dernière modif.) Sert à paramétrer le Timer 45 */ //OpenTimer45(T4_ON | T4_PS_1_1 | T4_32BIT_MODE_ON | T4_SOURCE_EXT,0xFFFFFFFF); T4CON = 0x0; //Stop Timer4 and clear T5CON = 0x0; //Stop Timer5 and clear T4CONCLR= 0b1 <<1; //Internal peripheral clock T4CONSET= 0b1 <<3; //32 bit, allume automatiqueent T5, utilise interrupt de T5 T4CONCLR= 0b111 <<4; //1:1 prescale value T4CONCLR= 0b1 <<7; //Gated time accumulation is disabled T4CONCLR= 0b1 <<13; //Continue operation in Idle mode T4CONCLR= 0b1 <<14; //Continue operation when CPU is in Debug Exception mode TMR4 = 0; //Remet le compteur à 0 PR4 =0xFFFFFFFF; //Péride T4CONSET= 0b1 <<15; //ENABLE /*===========================================================================================*/ |
.





Comments
Trackback