Microcontroleur (2)

Publié le par projet-kart-geii

Le programme du microcontroleur est terminé !

Malheureusement il y a eu une erreur dans la commande du microcontroleur Rabbit. Il a fallu en commander un nouveau car il n'y avait pas la convertion analogique numérique. Nous le receverons surement la semaine prochaine.

 

Voici une partie du code :

 

//*******************PROGRAMME CONVERSION EN LECTURE CONTINUE*******************

 

#define ADCCSR 0x0543

#define ADCCR 0X544

#define ADCLR 0x0540

#define ADCMR 0x0541

 

int value1 ;

int value2 ;

int value3 ;

int value4 ;

int value5 ;

int value6 ;

int value7 ;

 

 ..................

  

main()

{

//        0x544 = ADCCR

//        1000 0100    /horloge source/-/division par 2(pas de ralentissement)

//                     /convertisseur actif/-/pas d'interruption/

WrPortI(ADCCR, NULL, 0x84);

// Port A en sortie

WrPortI(SPCR, &SPCRShadow, 0X84);

//  Utilisation du Port A pour allumer les diodes

WrPortI(PADR, &PADRShadow, 0xF0);

 

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

 

while(1)

{

   while(1)

   {

                WrPortE(ADCCSR, NULL, 0x0C);// choix du canal de conversion

                BitWrPortE(ADCCSR, NULL, 1, 0);//début de la conversion

 

                value1 = BitRdPortE(ADCMR ,7); // lecture des 8 MSB

                value2 = BitRdPortE(ADCMR ,6);

                value3 = BitRdPortE(ADCMR ,5);

                value4 = BitRdPortE(ADCMR ,4);

.............

printf("premiere valeur");

                printf("%d", value1);

                printf("%d", value2);

                printf("%d", value3);

                printf("%d", value4);

                break;

 

   }

   while(1)

   {

       WrPortE(ADCCSR, NULL, 0x1C);//choix canal de conversion

 

                      BitWrPortE(ADCCSR, NULL, 1, 0);//début conversion

                printf("deuxieme valeur");

                value100 = BitRdPortE(ADCMR ,7); // lecture des 8 MSB

                value200 = BitRdPortE(ADCMR ,6);

                value300 = BitRdPortE(ADCMR ,5);

                value400 = BitRdPortE(ADCMR ,4);

                value500 = BitRdPortE(ADCMR ,3);

                value600 = BitRdPortE(ADCMR ,2);

                value700 = BitRdPortE(ADCMR ,1);

............

                printf("%d", value100);

                printf("%d", value200);

                printf("%d", value300);

                printf("%d", value400);

                printf("%d", value500);

                printf("%d", value600);

                printf("%d", value700);

 

                //conversion donne ValueY

 

                break;

 

 

 

 

   }

 

   if(valueX>=? && valueX<=?)

   {

      if(ValueY > ?)

      {

         //ouvrir le contacteur

      }

      if(ValueY < ?)

      {

         //fermé le contacteur

      }

   }

   //test à faire 5 fois

 

}

}

 

 

Un bon travail réalisé par Mathieu ! En attente de recevoir le bon microcontroleur et faire des tests !

Publié dans Microcontroleur

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article