Problème programme sur PIC18, compilateur XC8
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Problème programme sur PIC18, compilateur XC8



  1. #1
    petitnul12

    Problème programme sur PIC18, compilateur XC8


    ------

    Bonjour,


    Je tente de faire un truc extrêmement simple avec un PIC18F458, allumer une diode, pour tester mon programme écrit sous MPLabX et compilé avec XC8.
    Le PIC fonctionne, avec un ancien programme qui est dedans, mais quand je flash le PIC (avec un ICD3), et bien le PIC n'a pas l'air de réceptionner la nouveau soft, il continue sur l'ancien. MPLabX n'affiche aucun message d'erreur...

    J'ai essayé de voir d’où vient le problème, mais rien... Le programme est ci dessous. J'ai oublié quelque chose d'important ? Les config sont généré avec MPLabX



    Code:
    #include <p18f458.h>
    #include <xc.h>
    
    // CONFIG1H
    #pragma config OSC = RCIO       // Oscillator Selection bits (RC oscillator w/ OSC2 configured as RA6)
    #pragma config OSCS = OFF       // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source))
    
    // CONFIG2L
    #pragma config PWRT = OFF       // Power-up Timer Enable bit (PWRT disabled)
    #pragma config BOR = ON         // Brown-out Reset Enable bit (Brown-out Reset enabled)
    #pragma config BORV = 25        // Brown-out Reset Voltage bits (VBOR set to 2.5V)
    
    // CONFIG2H
    #pragma config WDT = OFF        // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
    #pragma config WDTPS = 128      // Watchdog Timer Postscale Select bits (1:128)
    
    // CONFIG4L
    #pragma config STVR = ON        // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause Reset)
    #pragma config LVP = OFF        // Low-Voltage ICSP Enable bit (Low-Voltage ICSP disabled)
    
    // CONFIG5L
    #pragma config CP0 = OFF        // Code Protection bit (Block 0 (000200-001FFFh) not code protected)
    #pragma config CP1 = OFF        // Code Protection bit (Block 1 (002000-003FFFh) not code protected)
    #pragma config CP2 = OFF        // Code Protection bit (Block 2 (004000-005FFFh) not code protected)
    #pragma config CP3 = OFF        // Code Protection bit (Block 3 (006000-007FFFh) not code protected)
    
    // CONFIG5H
    #pragma config CPB = OFF        // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected)
    #pragma config CPD = OFF        // Data EEPROM Code Protection bit (Data EEPROM not code protected)
    
    // CONFIG6L
    #pragma config WRT0 = OFF       // Write Protection bit (Block 0 (000200-001FFFh) not write protected)
    #pragma config WRT1 = OFF       // Write Protection bit (Block 1 (002000-003FFFh) not write protected)
    #pragma config WRT2 = OFF       // Write Protection bit (Block 2 (004000-005FFFh) not write protected)
    #pragma config WRT3 = OFF       // Write Protection bit (Block 3 (006000-007FFFh) not write protected)
    
    // CONFIG6H
    #pragma config WRTC = OFF       // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected)
    #pragma config WRTB = OFF       // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected)
    #pragma config WRTD = OFF       // Data EEPROM Write Protection bit (Data EEPROM not write protected)
    
    // CONFIG7L
    #pragma config EBTR0 = OFF      // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks)
    #pragma config EBTR1 = OFF      // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks)
    #pragma config EBTR2 = OFF      // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks)
    #pragma config EBTR3 = OFF      // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks)
    
    // CONFIG7H
    #pragma config EBTRB = OFF      // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks)
    
    
    
    int main() {
    
        TRISAbits.RA0 = 0;
        PORTAbits.RA0 = 1;
        LATAbits.LATA0 = 1;
    
        while(1)
        {}
    
    
        return (0);
    }

    -----

  2. #2
    RISC

    Re : Problème programme sur PIC18, compilateur XC8

    Salut,

    Ton programme ne peut pas fonctionner car tu n'as pas lu la datasheet....
    La plupart des broches sur le PORTA sont en analogiques au RESET. Il faut initialiser le registre ADCON1 pour les mettre en digital ou utiliser les broches RA4 ou RA6 qui sont en digital au Reset.

    Utilise SEULEMENT LATAbits.LATAx = 1 et n'utlises PAS PORTAbits.RAx pour les sorties mais seulement pour les entrées.

    Il existe plein de tuto sur les PIC18 sur g..gle particulièrement sur le PIC18F4520 qui est compatible pratiquement broche à broche avec le PIC18F458

    a+

Discussions similaires

  1. MPLAB X ; XC8, C18 et CCS sur Ubuntu
    Par punky591 dans le forum Électronique
    Réponses: 8
    Dernier message: 27/07/2012, 11h36
  2. Programme codeur inc, PIC18
    Par invite2e3f4e14 dans le forum Électronique
    Réponses: 3
    Dernier message: 27/09/2011, 12h42
  3. [Programmation]Différence Compilateur C C18/IAR PIC18
    Par jorg1n dans le forum Électronique
    Réponses: 3
    Dernier message: 01/04/2008, 08h38
  4. probleme avec la fonction sprintf sur pic18
    Par modelvincent dans le forum Électronique
    Réponses: 3
    Dernier message: 22/05/2007, 17h17
  5. Besoin d'aide pour le compilateur C SDCC et les PIC18
    Par invite87be5ae9 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/05/2006, 20h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.