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 ---
- 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 ---
Modérateur : Jérémy
Peut-on separement gerer les bits en MikroC?
Salut
Je un débutant passionné de microcontrôleur PIC et je souhaite réaliser un compteur et un décompteur modulo 99 avec un PIC16F84A. J'utilise deux décodeurs sur les portb, B0 à B3 pour le compteur et port B4 à B7 pour le décompteur. Ma question est de savoir comment faire pour separer les ports b de 4bits à 4bits. pour le multiplexage là il n'y a pas de problème je me débrouille un peu bien.
Patmus
Je un débutant passionné de microcontrôleur PIC et je souhaite réaliser un compteur et un décompteur modulo 99 avec un PIC16F84A. J'utilise deux décodeurs sur les portb, B0 à B3 pour le compteur et port B4 à B7 pour le décompteur. Ma question est de savoir comment faire pour separer les ports b de 4bits à 4bits. pour le multiplexage là il n'y a pas de problème je me débrouille un peu bien.
Patmus
Peut-on separement gerer les bits en MikroC?
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour patmus et bienvenue sur FantasPic,
Je ne suis pas sur d'avoir très bien compris ta problématique mais je vais tenter une réponse .
Je pense qu'il faut que tu utilises "un masque de bits". C'est à dire qu'il faut cacher les bits que tu ne veux pas tenir comptes.
Le but est d'extraire les données qui t'intéresse. Les mettres dans une variable temporaire pour les exploiter "seuls".
Si tu veux je peux expliciter un peu plus !
Je ne suis pas sur d'avoir très bien compris ta problématique mais je vais tenter une réponse .
Je pense qu'il faut que tu utilises "un masque de bits". C'est à dire qu'il faut cacher les bits que tu ne veux pas tenir comptes.
Le but est d'extraire les données qui t'intéresse. Les mettres dans une variable temporaire pour les exploiter "seuls".
Si tu veux je peux expliciter un peu plus !
Peut-on separement gerer les bits en MikroC?
Peut-on separement gerer les bits en MikroC?
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Re,
Je tiens au "Y" de mon prénom !!!
Pour les bits de poids faibles ( ceux qui sont à droite) . il faut masquer les 4 bits de gauche. On fait une petite opération booléenne.
Ton chiffre "ET" "00001111" = ton chiffre à exploiter.
En faisant ainsi les 4 bits de poids fort sont mis à zéro(donc ignorés) et il ne reste que les 4 chiffres de poids faibles.
Pour sortir les bits de poids forts , on effectue un décalage à droite de 4 cases. ainsi les bits de poids forts se retrouve en bit de poids faibles avec que des zéros en poids fort .
Par exemple : ABCDEFGH si je fais un décalage à droite de 4 cases j'obtiens : 0000ABCD et donc mon chiffre à exploiter.
Je ne sais pas si c'est très clair mon explication lol . A s tu un début de programme? je pourrais utiliser des exemples plus concrets!
Je tiens au "Y" de mon prénom !!!
Pour les bits de poids faibles ( ceux qui sont à droite) . il faut masquer les 4 bits de gauche. On fait une petite opération booléenne.
Ton chiffre "ET" "00001111" = ton chiffre à exploiter.
En faisant ainsi les 4 bits de poids fort sont mis à zéro(donc ignorés) et il ne reste que les 4 chiffres de poids faibles.
Pour sortir les bits de poids forts , on effectue un décalage à droite de 4 cases. ainsi les bits de poids forts se retrouve en bit de poids faibles avec que des zéros en poids fort .
Par exemple : ABCDEFGH si je fais un décalage à droite de 4 cases j'obtiens : 0000ABCD et donc mon chiffre à exploiter.
Je ne sais pas si c'est très clair mon explication lol . A s tu un début de programme? je pourrais utiliser des exemples plus concrets!
Peut-on separement gerer les bits en MikroC?
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Jérémy a écrit :Re,
Je tiens au "Y" de mon prénom !!!
...
Attention Pat, tu vas fâcher le Boss...
Ceci dit, bienvenu à toi, c'est cool et sympa ici, tu verras.
Je vais te proposer une solution.
Soit 3 octets, D (celui qui contient la valeur de 0 à 9 des dizaines), U (celui qui contient la valeur de 0 à 9 des unités) et FINAL (celui que tu enverras au port RB)
Avec les valeurs de 0 à 9 dans U et D tu vas faire la chose suivante :
- 4 décalages vers la gauche de D (tu auras une valeurs de 0 à 9 dans la partie gauche de l'octet et quatre 0 à droite)
- tu fais un AND entre U et D, valeur que tu attribueras à FINAL
- tu envoies FINAL sur RB
C'est le principe, je ne connais pas bien le C, mon truc (non Temps-x, ce n'est pas l'ASM ) c'est le Basic.
Peut-on separement gerer les bits en MikroC?
Bonjour patmus, Jérémy, Gérard, et tout le forum,
Soit le bienvenue sur le forum, et j'espère que tu y passeras des bons moment comme nous.
Ben moi je pratique ASM, le C pour moi c'est incompréhensible.
La premier chose c'est de lire tout le PORTB et le stocker dans une variable pour traitement,
Mais je peux pas continuer à t'aider si tu n'a pas de schéma, et la datasheet de tes décodeurs,
Ne pas confondre encodeur avec décodeurs, c'est pas la même chose.
cyril13110 à un concurrent.....
Gérard pratique couramment les deux langages ASM, Basic, c'est un Pro....
A+
Soit le bienvenue sur le forum, et j'espère que tu y passeras des bons moment comme nous.
Ben moi je pratique ASM, le C pour moi c'est incompréhensible.
La premier chose c'est de lire tout le PORTB et le stocker dans une variable pour traitement,
Mais je peux pas continuer à t'aider si tu n'a pas de schéma, et la datasheet de tes décodeurs,
Ne pas confondre encodeur avec décodeurs, c'est pas la même chose.
Jérémy a écrit :Source du message Je tiens au "Y" de mon prénom !!!
cyril13110 à un concurrent.....
Gérard a écrit :Source du message mon truc (non Temps-x, ce n'est pas l'ASM ) c'est le Basic.
Gérard pratique couramment les deux langages ASM, Basic, c'est un Pro....
A+
Peut-on separement gerer les bits en MikroC?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
En effet,
la solution masque et decalage me semble la solution la plus appropriée
(PORTD en exemple ..au lieu de PORTB )
affiche 36 03 06
ne pas oublier qu'on a acces aussi aux bits individuellement
PORTB.B0
PORTB.B1
...etc ...
En effet,
la solution masque et decalage me semble la solution la plus appropriée
(PORTD en exemple ..au lieu de PORTB )
Code : Tout sélectionner
//en lecture
PORTD=0x36;
// lecture PORTS
c1=PORTD;
ByteToHex(c1,CRam1);
//isolation b7..b4
UART1_Write_Text(CRam1);UART1_Write(TAB);
c1=PORTD>>4;
ByteToHex(c1,CRam1);
UART1_Write_Text(CRam1);UART1_Write(TAB);
// isolation B3..b0
c1=PORTD & 0x0F;
ByteToHex(c1,CRam1);
UART1_Write_Text(CRam1);
CRLF1();
affiche 36 03 06
ne pas oublier qu'on a acces aussi aux bits individuellement
PORTB.B0
PORTB.B1
...etc ...
Peut-on separement gerer les bits en MikroC?
Peut-on separement gerer les bits en MikroC?
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
patmus a écrit :Je tiens à veiller sur l’écriture de votre nom avec un Y. Jeremy
mon problème est que pendant que les quatre premier bits font le comptage les quatre autres font le décomptage
Ce que j'ai écrit en #5 reste valable pour du comptage et du décomptage.
Peut-on separement gerer les bits en MikroC?
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
patmus a écrit :Source du message mon problème est que pendant que les quatre premier bits font le comptage les quatre autres font le décomptage
Pour la partie compteur ( bit de poids faibles) pas de problème tu comptes normalement de 2^0 à 2^3
Pour la partie dé-compteur au lieu de décompter de 1 en 1 tu peux décompter de 2^4 à 2^7
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 51 invités