0
votes

Pic18 Io-Port noobie numéros avec XC8

Je viens de nombreuses années à AVR et à démarrer mon premier projet PIC avec un PIC18F46K42. Utilisation du mplab V5.15 réel avec le compilateur XC8 V2.05 (défini sur la norme C99). (S'inscrire au Forum de Microchip ne fonctionne pas pendant des jours ...)

et maintenant je suis des problèmes de base pour obtenir un simple accès IO-Port fonctionnant:

premier réglage RC6 : xxx

essayant maintenant de lire io-port RC6: xxx

= => Erreur de compilation: Nom de type inattendu 'PortCBits_T ': expression attendue

la commande "portcbits.rc6, sans" _t ", qui est publiée dans de nombreux tutoriels, n'est pas reconnu par le compilateur du tout

puis essayant de écrire sur io-port RC6: xxx

=> Erreur de compilation: identifiant attendu ou '('

la commande "latcbits.latc6, sans" _t ", qui est également publié dans de nombreux tutoriels, n'est pas reconnu par le compilateur du tout

lisant le manuel XC8 et la fiche technique ne vous aide pas vraiment ... Je pense que j'ai manqué quelque chose de base avec cet IDE / compilateur. Peut-être dans la configuration ...

Tous les ID ou suggestions de documentation sont vraiment appréciés !!

Merci beaucoup !!


0 commentaires

3 Réponses :


1
votes

..._ t est faux, c'est une définition de type. Jetez un coup d'œil à l'en-tête de la pièce (PIC18LF46K42.h), ligne 46579. La structure du port réelle, définie à la ligne suivante, est appelée portcbits . Pour que ce nom soit reconnu, vous devez #include dans votre source et assurez-vous que la partie correcte est configurée dans le projet MPLAB.

J'utilise cette notation tout le temps et cela fonctionne toujours, étant donné que la broche existe et que les deux conditions ci-dessus sont remplies. Exemple:

https: // github .com / felis / agitateur / blob / f-bureau / de carte_Control / code / agitateur / bsp.h # L58


0 commentaires

0
votes

Vous voudrez peut-être envisager d'utiliser MCC (Configurateur de code MPLAB). Il facilitera les choses pour utiliser les périphériques - même simplement une simple broche I / O.

Cela facilite également la tenue de vos ressources.

Vous pouvez créer des noms d'alias pour les broches et ensuite MCC vous fournir des macros propres comme: xxx


0 commentaires

1
votes

Comme mentionné par Oleg, le ..._ T est incorrect. Changez la ligne sur celle ci-dessous et elle compilera sans problèmes.

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include <stdint.h>

int main(int argc, char** argv) {
    uint8_t LEDstate = PORTCbits.RC6; // auto completition of PORTC.. command by xc8
    return (EXIT_SUCCESS);
}


0 commentaires