Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---

instruction swith case et pic16f877a

Forum général sur le langage C !

Modérateur : Jérémy

dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

instruction swith case et pic16f877a

Messagepar dyli » mar. 14 mars 2017 10:36

Bonjour tout le monde,

J'ai essayé de de lire ou copier l'état de portb sur port c, c-a-d si:

RB0 vaut 1 logique , je fais allumer une led sur RC0
RB1 vaut 0 logique, j'éteins la led sur RC1

ainsi de suite jusqu'a RB7, ma question est comment faire avec 'instruction switch case?

Merci

Avatar de l’utilisateur
paulfjujo
Maître
Maître
Messages : 3269
Enregistré en : juillet 2015
Localisation : 01800
Contact :

instruction swith case et pic16f877a

Messagepar paulfjujo » mar. 14 mars 2017 11:05

bonjour,

dyli a écrit :Bonjour tout le monde,

J'ai essayé de de lire ou copier l'état de portb sur port c, c-a-d si:

RB0 vaut 1 logique , je fais allumer une led sur RC0
RB1 vaut 0 logique, j'éteins la led sur RC1

ainsi de suite jusqu'a RB7, ma question est comment faire avec 'instruction switch case?

Merci


Pourquoi un switch case ?

Code : Tout sélectionner

TRISC=0;    // en sortie
TRISB=0xFF//en entree
LATC=PORTB;      // bits du port B copié sur sorties portC
 
Aide toi, le ciel ou FantasPic t'aidera

dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

instruction swith case et pic16f877a

Messagepar dyli » mar. 14 mars 2017 14:36

salut paulfjujo,

switch case c'était juste pour apprendre a l'utiliser et me familiariser avec...

Par contre quand je compile avec Mikroc, il affiche ce message : Undeclared identifier 'LATC' in expression copier coller.c


voici mon code

Code : Tout sélectionner

//Programme qui permet de copier l'état du portb sur portc
// pic 16f877a    14.03.2017

 void main(void)
{
  do
  
{
  
TRISC
=0;    // en sortie
TRISB=0xFF; //en entree
PORTC=0;
delay_ms(100);
LATC = PORTB;      // bits du port B copié sur sorties portC

  }while (1);
}

Avatar de l’utilisateur
paulfjujo
Maître
Maître
Messages : 3269
Enregistré en : juillet 2015
Localisation : 01800
Contact :

instruction swith case et pic16f877a

Messagepar paulfjujo » mar. 14 mars 2017 16:07

dyli a écrit :..., il affiche ce message : Undeclared identifier 'LATC' in expression copier coller.c



errare, c'est pour un 18F .. utilise PORTC à la place.

petite modif du code,
l'init .. 1 seule fois suffit

Code : Tout sélectionner

//Programme qui permet de copier l'état du portb sur portc
// pic 16f877a    14.03.2017

 void main(void)
{
  
TRISC
=0;    // en sortie
TRISB=0xFF; //en entree
PORTC=0;
  do
  
{

delay_ms(100);
PORTC = PORTB;      // bits du port B copié sur sorties portC

  }while (1);
}



le switch case ne serait pas un bon exemple pour ceci..
un exemple ci dessous
avec 4 interrupteurs sur les 4 bits de poids faible PORTB, actionnés INDIVIDUELLEMENT
allumage de 1, 2, 4, 8 leds

Code : Tout sélectionner


  TRISC
=0x00;
   
PORTC=0;
   
TRISB=0xFF;
   do
   {  
j=PORTB 0x0F;
      switch (
j)
      {
      case 
PORTC=0x01; break;
      case 
PORTC=0x03; break;
      case 
PORTC=0x0F; break;
      case 
PORTC=0xFF;break;
      default :
PORTC=0;
      }
      
   }while(
1);
 
Aide toi, le ciel ou FantasPic t'aidera

dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

instruction swith case et pic16f877a

Messagepar dyli » mar. 14 mars 2017 16:45

Merci encore paulfjujo,

le 1 er programme fonctionne je l'ai testé sur proteus,je vais bientot tester avec le cas switch case.

Merci beaucoup paulfjujo, tres généreux de ta part.

dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

instruction swith case et pic16f877a

Messagepar dyli » mar. 14 mars 2017 18:21

Le 2eme code marche aussi, j 'ai juste ajouté j comme char au debut du programme. C'est intéressant comme code

merci paulfjujo,


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités