Tips & Tricks - PIC _ XC8

 

Su cose che si vedono in XC8...


Una esperienza con XC8


Target delle prove : 16F1619


PORTC e PORTB

Se osserviamo il PORTC, dal foglio data vediamo che RC5:4 non hanno analogica.
Così pure per il PORTB, dove RB5:4 non hanno capacità analogica.

Nella struttura, come ci si può aspettare, mancano ANSC5 e ANSC4.

Di conseguenza, nella struttura ANSELB dovrebbero mancare ANSB5 e ANSB4.
Ma non è così:

  1. la struttura ANSELB assegna ANSB4, ANSB5, ANSB6, ANSB7, come se tutti i pin fossero dotati di funzione analogica. 
  2. in debug, al POR il contenuto di ANSELC è , come ci si aspetta 0xCF, ma quello di ANSELB non è 0xC0, come ci si aspetterebbe dal foglio dati, bensì 0xF0
    Ovvero: ANSB4 e ANSB5 esistono anche fisicamente?

Per il punto 1. potrebbe trattarsi di una svista dovuta al copia-e-incolla durante la stesura del foglio dati, ma questo non giustifica il punto 2.
Il problema è stato trattato nel forum Microchip, con i soliti risultati inconcludenti.
Nel file di errata del componente non c'è alcuna indicazione della cosa, la quale non sembra creare problemi. Ma, nello specifico, compilando:

#include <xc.h>

// EN pin
#define EN LATBbits.LATB5
#define EN_tris TRISBbits.TRISB5
#ifdef _ANSELB_ANSB5_POSN
#define EN_ansel ANSELBbits.ANSB5
#endif

// RW pin
#define RW LATBbits.LATB4
#define RW_tris TRISBbits.TRISB4
#ifdef _ANSELB_ANSB4_POSN
#define RW_ansel ANSELBbits.ANSB4
#endif

void main ()
{
  EN = 0;
  EN_tris = 0;
#ifdef EN_ansel
  EN_ansel = 0;
#endif
  RW = 0;
  RW_tris = 0;
#ifdef RW_ansel
  RW_ansel = 0;
#endif

while (1);
}


che è compilato senza errori.

Se ANSB4 e ANSB5 non sono fisicamente esistenti (stando al foglio dati), abbiamo  l'inserzione di 4 istruzioni inutili.

520 ;Ansc1.c: 22: ANSELBbits.ANSB5 = 0;
521 07F4 0023 movlb 3  ; select bank3
522 07F5 128D bcf 13,5 ;volatile
529 ;Ansc1.c: 27: ANSELBbits.ANSB4 = 0;
530 07F9 0023 movlb 3  ; select bank3
531 07FA 120D bcf 13,4 ;volatile

Niente di male, ma la situazione non è chiara.

Da cosa dipende la differenza tra foglio dati, struttura e apparente realtà?

Al momento il quesito attende ancora una risposta


XC8 1.35 con MPLAB X 4.15


 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 07/10/21 .