Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1722 connectés 

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PIC 16F88 Pas de respet du code !

n°330058
slmh1
Posté le 31-01-2021 à 09:29:57  profilanswer
 

Gros problème : j’utilise un 16F88 avec horloge interne et son CNA. Après avoir placé le PIC programmé (MCLR +5V, VDD +5V, fusibles OFF, oscillateur INTRC ou MCLR et BODEN=ON) sur plaque d’essai, lorsque je le mets sous tension, Le PIC ne respecte pas le programme défini et exécute absolument TOUT de A à Z (qu’il y ai une entrée connectée ou pas au port A2). Quand arrivé à la fin de celui-ci, il revient (boucle infinie) au début et c’est seulement qu’il respecte le programme demandé c-à-d  qu’il attend la 1° donnée pour la traiter (IDEM avec un nouveau PIC).
Qui pourrait m’aider concrètement pour résoudre ce problème à savoir attendre la donnée dès le début de la mise sous tension ?  Le voltage d’entrée à RA2 :0.4V-4.7V
Ci-dessous le logiciel
 
//ESSAI-F88.C   et   essai-F88.mcppi
//microcontroleur : PIC 16F88
//langage : MikroC 6.6
 
#define sortie  RB4_bit      //pin 10     allumage pompe
bit led at RA0_bit;        //pin 17     led de visualisation du fonctionnement
//#define capteur  RA2_bit    VOIR + PAS
 
float volthaut;   //résultat de voltage
float radchaut;   //mesure tension sur RA2  pin 1    CAPTEUR HAUT
char sec;         //temps pour allumage led de fonctionnement PIC
char pompe=0,i;
 
void main()
{
 TRISA=0b00000100;   //entrée RA2  si met 0 pompe (RB4) tjs allumée en continu !!
 TRISB=0b00000000;
 PORTA=0b00000100;      //0 ou 1 pas de respect de la 1° passe !!
 PORTB=0b00000000;
 //utilisation du timer interne si besoin de compter quelque chose
 OPTION_REG=0b11000100;
 // bit 5=0   timer0 utilise horloge interne
 // bit 4=0   timer0 s'incrémente en front montant
 // bit 3=0   prediviseur au timer
 // bit 2->0  prediviseur timer /32= 100
 INTCON=0;  //pas d'interruption
 OSCCON=0b01100010;    //4 MHz horloge interne
 //bit 6-4 : 110=4 MHz
 //bit 3 : 0 horloge système primaire
 //bit 2 : 0
 //bit 1-0 : 10 oscillateur interne RC
 ADCON1=0b10000000;
 //bit 7 (ADFM) =1   résultat conversion à droite
 //bit 6 (ADCS2) = 0  horloge interne divisée par 2  inactivée  -> influence
 //                   le bit 7 de ADCON0
 //bit 5-4 = 0    VRef + = Vcc   et   VRef - = masse
 ANSEL=0b00111110; //choix canaux en analogique =1  (CNA sur A0->A4 et B6-B7)
 CMCON=0b00000111;  //désactivation des comparateurs
 
 sortie=0; sec=0;    //capteur=0;    initialisation
 ADC_Init();
 ADCON0.ADCS1=1;   //bit 7-6 oscillateur horloge RC interne
 ADCON0.ADCS0=1;
 ADCON0.ADON=0;    //convertisseur à l'arret
 
 while(1)
 {
  //do     NE FONCTIONNE PAS !!!
  //{ pompe=capteur; }  while(capteur==0);  pompe=0;
  ADCON0.ADON=1;      //convertisseur activé
  radchaut=ADC_Read(2);     //RA2    pin 1
  Delay_us(30);      //temps de conversion
  volthaut=(radchaut*5.0)/1023.0;  //mesure voltage HAUT
  ADCON0.ADON=0;      //convertisseur arret
  //if(pompe==0) volthaut=0;  //Idem dessous
  //if(pompe==1)  //NE SERT A RIEN au lancement du prog même sans voltage sur
  //{         //RA2 (pas de connexion) la sortie allume la pompe !!!!!
   if(volthaut>=3.5)
   { sortie=1; pompe=1;     //allume pompe
    for(i=1;i<=10;i++)
    {  Delay_ms(1000);  }
     sortie=0;
   }
    else   { sortie=0;  Delay_ms(100);  }
  //}
  //pompe=1;
 } //fin while
}

mood
Publicité
Posté le 31-01-2021 à 09:29:57  profilanswer
 

n°330076
rat de com​bat
attention rongeur méchant!
Posté le 31-01-2021 à 13:48:21  profilanswer
 

Merci de mettre le code correctement formaté entre balises. Et faire un effort au niveau rédaction aussi, là ça ne donne pas du tout envie de t'aider.

n°330082
slmh1
Posté le 31-01-2021 à 14:28:23  profilanswer
 

Tout d'abord qu'est ce pour toi une balise et montre moi un exemple concret.
Ensuite le programme est parfaitement lisible car toute les lignes de commandes sont parfaitement mise en retrait.

n°330098
rat de com​bat
attention rongeur méchant!
Posté le 31-01-2021 à 16:50:56  profilanswer
 

C'est toi qui veut de l'aide, pas moi...
 
Les balises pour le code c'est avec le petit bouton https://forum-images.hardware.fr/icones/message/c.gif.

n°330101
slmh1
Posté le 31-01-2021 à 17:21:05  profilanswer
 

ou trouver ce petit bouton ?


Aller à :
Ajouter une réponse
 

Sujets relatifs
PIC 16F88 CNAXiaomi M365 code erreur 24
circuit intégré et "batch code" 
Plus de sujets relatifs à : PIC 16F88 Pas de respet du code !


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR