[Programmation] Problème utilisation CAN 16F887 / Compilateur HI-TECH
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Problème utilisation CAN 16F887 / Compilateur HI-TECH



  1. #1
    Richard52

    Problème utilisation CAN 16F887 / Compilateur HI-TECH


    ------

    Bonjour,

    Je suis en train de faire un petit projet sur µcontrôleur PIC16F887.
    J'utilise HI-TECH et MPLAB pour coder mon programme en langage C.

    Je n'arrive pas a utiliser le CAN. Pourtant j'ai tout essayé.. ceci doit être une erreur toute bête mais personnellement je ne vois pas.
    Pouvez vous m'aider s'il vous plait?

    Merci !
    Cordialement,


    Code:
    #include<htc.h>
    #include<pic.h>
    #define _XTAL_FREQ 8000000
    
    int ADC_Read()
    {
      	GODONE = 1; 		//Debut de la convertion
      	while(GODONE); 	//Attente de la fin de la convertion
      	return (ADRESH); 	//Rtourne la valeur convertie
    }
    
    void main()
    {
      	int tension;
    
      	TRISC = 0x00; 	        //Registre C en OUTPUT (LED)
      	PORTC = 0X00;	        //Initailisation LED eteinte
    
      	ADCON0 = 0x41; 	//Iniialisation du CAN AN0
      	ADCON1 = 0x00; 
    	ANSEL = 0x01;
    	ANSELH = 0x00;
    
      	while(1)
      	{
    		tension = ADC_Read(); 	//Lesctures valeurs de la pin RA0
    		if (tension>100) RC1=1;	//Si valeur <100 alors on alume RC1
    		else RC2=1;			//Sinon on alume RC0
      	}
    }

    -----

  2. #2
    umfred

    Re : Problème utilisation CAN 16F887 / Compilateur HI-TECH

    il faut initialiser ANSEL/ANSELH avant d'activer le CAN (suivre la "procédure" de la page 105 de la doc http://ww1.microchip.com/downloads/e...doc/41291d.pdf)

  3. #3
    umfred

    Re : Problème utilisation CAN 16F887 / Compilateur HI-TECH

    Il y a aussi le fait que la valeur de l'ADC est dans ADRESH:ADRESL donc il faudrait que le return soit return ((ADRESH<<8)+ADRESL); pour avoir la valeur complète.

  4. #4
    Richard52

    Re : Problème utilisation CAN 16F887 / Compilateur HI-TECH

    Bonjour,

    Merci pour ta réponse,
    Mon CAN fonctionne un peu mieux mais ce n'est pas encore ca : a la valeur 150 de Tension je suis deja en réalité a 5V... La valeur sortant du CAN pour 5V ne doit pas etre 1023??

    Code:
    #include <htc.h>
    #define _XTAL_FREQ 8000000
    __CONFIG (0x0BF2);
    
    void main()
    {
    	int Tension;
    
      	ANSEL = 0x01;
    	ANSELH = 0x00;
    	ADCON0 = 0x49; 	//Iniialisation du CAN AN1
      	ADCON1 = 0x00; 
    
     	TRISC=0X00;
      	TRISD=0xFF;
      	PORTC=0X00;
    
      while(1)
      { 
    	GODONE = 1; 		//Debut de la convertion
      	while(GODONE); 		//Attente de la fin de la convertion
    	Tension = (ADRESH<<8)+ADRESL);
    
    	if (Tension<=150) {RC0=1;RC1=0;RC2=0;RC3=0;}
    	else if (Tension>150) {RC0=1;RC1=1;RC2=0;RC3=0;}
      }
    }
    Dernière modification par Richard52 ; 29/01/2021 à 18h22.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. PIC] Compilateur CCS C - Problème utilisation PORTB PIC 16F876a
    Par ichigo293 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/02/2014, 14h54
  2. Assembleur et Compilateur Hi tech
    Par mmarc2007 dans le forum Électronique
    Réponses: 12
    Dernier message: 20/12/2011, 22h05
  3. Erreur sur le compilateur hi-tech
    Par LABTOOL48 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/05/2010, 03h39
  4. pic et compilateur hi-tech
    Par mmarc2007 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/07/2009, 16h33
  5. petit problème avec le compilateur Hi-tech
    Par MofK dans le forum Électronique
    Réponses: 14
    Dernier message: 02/09/2008, 11h59
Découvrez nos comparatifs produits sur l'informatique et les technologies.