Léger probleme programmation PIC en C
Résolu
Spyro29
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Spyro29 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Spyro29 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai un petit problème au niveau de l'initialisation de mon pic. Je veux juste alummer 2 LED pour l'instant voir si je n'ai pas de bug de ce coté la et voir si le programmateur PIC fonctionne bien ca je ne l'ai jamais utilisé.
Cependant j'ai un léger problème lorsque je veux que me LEDs soient initialisée a 0 MPLAB me trouve une erreur de syntaxe. Mon compilo est MCC18, Le pic que j'utilise est un 18F2680. Voici mon programme:
#include "p18f2680.h"
#include "stdio.h"
/*Définition des entrées sorties*/
#define LED1 portc.1
#define LED2 portc.2
void init()
{
LED1 = 0;
LED2 = 0;
trisc=0b00000000;
}
void main() {
init();
while (1)
{
LED1=1;
LED2=0;
delay(1);
LED1=0;
LED2=1;
delay(1);
}
}
Voilà j'ai un petit problème au niveau de l'initialisation de mon pic. Je veux juste alummer 2 LED pour l'instant voir si je n'ai pas de bug de ce coté la et voir si le programmateur PIC fonctionne bien ca je ne l'ai jamais utilisé.
Cependant j'ai un léger problème lorsque je veux que me LEDs soient initialisée a 0 MPLAB me trouve une erreur de syntaxe. Mon compilo est MCC18, Le pic que j'utilise est un 18F2680. Voici mon programme:
#include "p18f2680.h"
#include "stdio.h"
/*Définition des entrées sorties*/
#define LED1 portc.1
#define LED2 portc.2
void init()
{
LED1 = 0;
LED2 = 0;
trisc=0b00000000;
}
void main() {
init();
while (1)
{
LED1=1;
LED2=0;
delay(1);
LED1=0;
LED2=1;
delay(1);
}
}
A voir également:
- Léger probleme programmation PIC en C
- Pic hunter - Télécharger - Téléchargement & Transfert
- Application de programmation - Guide
- Windows leger - Télécharger - Systèmes d'exploitation
- Pic collage gratuit - Télécharger - Photo & Graphisme
- Sorigny tours pic - Forum Windows
3 réponses
salut !
quelle est l'erreur en question ? Il doit bien te donner un message, non ?
void main()
c'est int main(void) normalement. Et ton main devrait se terminer par qqchose comme "return 0";
quelle est l'erreur en question ? Il doit bien te donner un message, non ?
void main()
c'est int main(void) normalement. Et ton main devrait se terminer par qqchose comme "return 0";
Salut,
Merci d'avoir répondu aussi rapidement :D.
Pour ce uqi est du void main() cela ne change rien je pense car peut importe ce que renvoi mon main cependant j'ai tout de meme fait comme tu me l'as conseillé mais ca me change rien. Bon l'erreur est a la ligne
LED1=0;
error: syntax error.
J'ai vérifié pas de point virgule oublié ni rien... Cela me laisse perplexe
Merci d'avoir répondu aussi rapidement :D.
Pour ce uqi est du void main() cela ne change rien je pense car peut importe ce que renvoi mon main cependant j'ai tout de meme fait comme tu me l'as conseillé mais ca me change rien. Bon l'erreur est a la ligne
LED1=0;
error: syntax error.
J'ai vérifié pas de point virgule oublié ni rien... Cela me laisse perplexe
LED1 est un raccourci pour "portc.1"
tu as donc écrit :
portc.1 = 0;
moi non plus je ne comprends pas, comme ton compilateur, la syntaxe que tu utilises.
Je n'y conais rien en micro controleur, mais je ne comprends pas, du point de vue du langage C, ce que portc.1 est.
en tout cas ce nest pas une variable de structure
(structure.variable) car un nom de variable ne peut pas être un nombre.
tu as donc écrit :
portc.1 = 0;
moi non plus je ne comprends pas, comme ton compilateur, la syntaxe que tu utilises.
Je n'y conais rien en micro controleur, mais je ne comprends pas, du point de vue du langage C, ce que portc.1 est.
en tout cas ce nest pas une variable de structure
(structure.variable) car un nom de variable ne peut pas être un nombre.
Je ne programme les PIC's qu'en assembleur, mais je ne serais pas surpris que la déclaration soit 'PORTC' et comme le 'C' est un langage 'cassé'... il faut s'y plier !
Pour ce qui est du main, cela n'a pas d'importance, car bien souvent on écrit:
Bonne continuation.
A l'attention de Paco:
Le langage 'C' utilisé pour programmer les microcontroleurs est assez spécial, il permet accéder facilement aux ports d'entrées-sorties. Ainsi 'PORTC.3 = 1;' signifie simplement que l'on veut mettre le bit 3 (qui correspond à un pin sur le boîtier) du port C au niveau haut.
Salutations.
Pour ce qui est du main, cela n'a pas d'importance, car bien souvent on écrit:
void main () { initialisation(); //initialisation du PIC for( ; ; ) //boucle infinie { //mettre ici le programme principal } }
Bonne continuation.
A l'attention de Paco:
Le langage 'C' utilisé pour programmer les microcontroleurs est assez spécial, il permet accéder facilement aux ports d'entrées-sorties. Ainsi 'PORTC.3 = 1;' signifie simplement que l'on veut mettre le bit 3 (qui correspond à un pin sur le boîtier) du port C au niveau haut.
Salutations.
C'est Bon j'ai enfin pu résoudre mon problème. Le Programme que j'avais fait était correct cependant la syntax n'était pas bonne étant donnée que j'utilisais un compilateur différent de celui que j'utilise d'habitude. Mon compilo est Boostc de sourceboost, celui que j'utilisais était MCC18 donc rien a voir. Merci de m'avoir aider :)