2016-07-16 2 views
0

lors de l'utilisation de #pragma CONFIG = WDTE OFF Je reçois un message indiquant que "WDTE est défini sur ON puis-je le modifier?" Je réponds oui. Ce qui me préoccupe, c'est que les autres instructions de configuration sont ignorées? Je ne peux pas dire. Nouveau sujet. Essayer de faire clignoter la LED avec PIC16f688. Merci.MPLAB xc8 pic16f688 pragma pour WDTE ignoré

Je l'ai eu à travailler, en quelque sorte. J'ai vérifié que les instructions #pragma précédaient #include et #define. Ce qui suit est le bloc d'instructions #pragma qui n'a pas fonctionné.

enter code here #pragma config WDTE = 0x0 enter code here #pragma config PWRTE = 0x0 enter code here #pragma config MCLRE = 0x0 enter code here config #pragma CP = 0x0 enter code here #pragma config CPD = 0x0 enter code here #pragma config = BOREN 0x1 enter code here #pragma config SIERE = 0x1 enter code here config #pragma FCMEN = 0x1

je suis allé à l'approche hexagonale pour éviter les définitions ON et OFF J'ai utilisé les «bits de configuration de MPBLAB» dans la liste déroulante RUN pour définir les bits, en les changeant en hex. Cela a encore donné le WDTE, puis l'erreur a disparu et j'ai détecté une erreur CP PWRTE. J'ai découvert que j'avais mis MCLRE à 1, donc en le mettant à 0, j'ai toujours reçu les messages d'erreur de configuration, mais le programme a fonctionné. Ensuite, j'ai utilisé seulement l'instruction #pragma config CONFIG 0xFF5. Je n'ai pas d'erreurs de configuration, mais un avertissement que le 0xFF5 allait automatiquement tronqué à 0xFFF. Maintenant, tout fonctionne, mais, je ne peux pas lancer le débogage.

En maintenant avec ce problème, qui, je suppose, est un fil différent. Cependant, la question se pose de savoir comment le mot de configuration est formé, quels bits contribuent une partie du mot. J'ai essayé de deviner à partir de certains registres mais je n'ai rien trouvé. Ce serait bien de savoir. En outre, en notant 0xFFF définit chaque bit dans le mot à 1 impliquerait que toutes mes instructions de configuration #pragma (bits) = 1, ce qui n'a aucun sens. J'ai exécuté mon programme et mon circuit en utilisant d'autres méthodes de dépannage. Je voudrais utiliser le débogage dans le futur. J'ai lu et relu dans le guide PICkit 3 sur PGD et PGC et j'ai une horloge qui tourne sur la puce. Mon o'scope dit que j'ai une horloge de course (interne 4 MHZ). Le pic16f688 n'utilise pas la terminologie PGD et PGC, mais les broches sont étiquetées ICSPDAT et ICSPCLK, respectivement. Je n'arrive pas à comprendre pourquoi le débogage ne fonctionne pas. J'ai assez plié ton oreille et j'apprécie ton aide. Greg

+2

Avez-vous réellement un problème? Il n'y a pas de question claire ici. Si vous avez du code qui ne fonctionne pas, veuillez le poster. –

+1

@Greggoshen, vous pouvez simplement modifier votre question ci-dessus pour ajouter la partie la plus importante du code qui reproduit le comportement. Plus cela sera court, plus cela sera efficace. Si vous obtenez ce comportement, il n'y a vraiment que deux raisons possibles. R - le bit n'est pas appelé WDTE sur le périphérique et B vous avez redéfini la signification de OFF en ayant un #define avant l'instruction #pragma. Mon argent est sur ce dernier. – Cobusve

Répondre

1

Parfois, les utilisateurs définissent OFF dans un fichier d'en-tête et interrompent le pragma.

En fait chaque fois que quelqu'un m'a posé cette question c'était le cas, donc je suis sûr à 99% que c'est votre problème.

Ne jamais inclure d'en-têtes avant le pragma !!!