Léger probleme programmation PIC en C

Résolu/Fermé
Signaler
Messages postés
21
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
19 mai 2010
-
Messages postés
21
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
19 mai 2010
-
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);

}
}


3 réponses

Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
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";
0
Messages postés
21
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
19 mai 2010
1
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
0
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
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.
0
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
146
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:
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.
0
Messages postés
21
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
19 mai 2010
1
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 :)
0