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   -
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);

}
}


A voir également:

3 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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
Spyro29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   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
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
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
Spyro29 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   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