Bonjour à tous,

Petit nouveau sur ce forum, je me permets de faire appel à vos lumières sur un problème que je rencontre actuellement avec ma sonde de température (DS1820).

Pour le contexte :
- Dev avec un pickit3 + MPLAB (en C)
- PIC : 18F45K20

le 1-wire de la sonde est sur le port RA3 du pic, le cablage est identique à celui préconisé dans la doc (tirage vers le haut avec une R de 4.7k). La sonde est directement alimentée en 3.3v (pas d'utilisation du mode parasite).

J'ai réussi à faire fonctionner mon lcd (un 4x20), la base de mon système fonctionne (c'est déjà rassurant ).

Je souhaite maintenant initialiser ma sonde de température. J'ai décidé de ne rien réinventer et d'utiliser le code proposé par Microchip : http://www.microchip.com/stellent/id...pnote=en535817

Le problème est donc le suivant, dès le passage de cette commande :
TRISAbits.TRISA3 = 0;
mon programme semble bloqué.
Je l'ai entourée de 2 commandes affichant un caractère sur le LCD et mon 2ème caractère ne s'affiche jamais (oui je sais mon système de debug est un peu archaïque ).

Par contre, si je débranche ma sonde de température du port RA3 mon programme ne se bloque plus !

Pour info voici l'initialisation du pic :
Code:
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF                       // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30                        // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768                                     // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = PORTC       // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF                          // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF                   // CONFIG5L
#pragma config CPB = OFF, CPD = OFF                                         // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF               // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF                           // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF           // CONFIG7L
#pragma config EBTRB = OFF                                                  // CONFIG7H

OSCCONbits.SCS1 = 1;
OSCCONbits.IRCF2 = 1;
OSCCONbits.IRCF1 = 1;
OSCCONbits.IRCF0 = 1;
OSCCONbits.OSTS = 0; // device is running from internal oscillator
OSCTUNEbits.PLLEN = 1; // enable PLL
ADCON0bits.ADON = 0; // disable ADC
Si quelqu'un à une idée, j'avoue que je sèche complètement là.