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: P>
premier réglage RC6 : p> essayant maintenant de lire io-port RC6: P> = => Erreur de compilation: Nom de type inattendu 'PortCBits_T ': expression attendue p> la commande "portcbits.rc6, sans" _t ", qui est publiée dans de nombreux tutoriels, n'est pas reconnu par le compilateur du tout p> puis essayant de écrire sur io-port RC6: p> => Erreur de compilation: identifiant attendu ou '(' p> la commande "latcbits.latc6, sans" _t ", qui est également publié dans de nombreux tutoriels, n'est pas reconnu par le compilateur du tout P> 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 ... p> Tous les ID ou suggestions de documentation sont vraiment appréciés !! p> Merci beaucoup !! P> P>
3 Réponses :
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: p>
..._ t code> 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 code>. Pour que ce nom soit reconnu, vous devez
#include
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. P>
Vous pouvez créer des noms d'alias pour les broches et ensuite MCC vous fournir des macros propres comme: p>
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); }