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 ---
Forum général sur le langage C !

Modérateur : Jérémy

instruction swith case et pic16f877a
dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

#1 Message par 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

instruction swith case et pic16f877a
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#2 Message par 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

instruction swith case et pic16f877a
dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

#3 Message par 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);
}

instruction swith case et pic16f877a
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par 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

instruction swith case et pic16f877a
dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

#5 Message par 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.

instruction swith case et pic16f877a
dyli
Débutant
Débutant
Messages : 33
Enregistré en : février 2017

#6 Message par 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 42 invités