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
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
bonjour a tous;
j'ai fait un petit décompteur a 4 dgit 7seg avec 4 BP (RESET , PLUS , MOINS , START)en mikroc.
Ma petite question concernant les BP et mikroc, est'il possible d'utilise un BP pour incrémenté (++) avec différente vitesse d’incrémentation. merci
j'ai fait un petit décompteur a 4 dgit 7seg avec 4 BP (RESET , PLUS , MOINS , START)en mikroc.
Ma petite question concernant les BP et mikroc, est'il possible d'utilise un BP pour incrémenté (++) avec différente vitesse d’incrémentation. merci
Modifié en dernier par nebukadnezare le dim. 4 oct. 2015 18:07, modifié 1 fois.
mikroc e BP
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello nebukadnezare ,
Tout d'abord bienvenue sur FantasPic.fr !
Je te propose de renommer ton titre qui contient une énorme erreur . "e" à la place de "et" ? cela ne donne pas envie de lire ton post, si déjà on a du mal à lire le titre. Je dis ça pour toi , pour que tu réussisse a obtenir la réponse que tu attends.
ta question est mal tournée à mon avis . Tu veux incrémenter ta valeur de compteur je suppose, en appuyant sur un BP . et tu souhaiterais changé la vitesse d'incrémentation ? si Oui comment veut faire cela, il y a de multiple façon !
Un appui ça incrémente doucement, pendant que ça incrémente un deuxième appui accélère un peu , puis un troisième accélère encore plus , et enfin un quatrième qui revient à la première vitesse ?
Sinon on laisse appuyé et la vitesse varie toute seule avec le temps d'appui ;
Appui sur le BP ça incrémente doucement, au bout de 5 seconde ça accélère , et bout de 10 secondes a fond les gamelles ?
Tout est possible suffit d'être précis !
PS: Merci de préciser ton PIC
Tout d'abord bienvenue sur FantasPic.fr !
Je te propose de renommer ton titre qui contient une énorme erreur . "e" à la place de "et" ? cela ne donne pas envie de lire ton post, si déjà on a du mal à lire le titre. Je dis ça pour toi , pour que tu réussisse a obtenir la réponse que tu attends.
ta question est mal tournée à mon avis . Tu veux incrémenter ta valeur de compteur je suppose, en appuyant sur un BP . et tu souhaiterais changé la vitesse d'incrémentation ? si Oui comment veut faire cela, il y a de multiple façon !
Un appui ça incrémente doucement, pendant que ça incrémente un deuxième appui accélère un peu , puis un troisième accélère encore plus , et enfin un quatrième qui revient à la première vitesse ?
Sinon on laisse appuyé et la vitesse varie toute seule avec le temps d'appui ;
Appui sur le BP ça incrémente doucement, au bout de 5 seconde ça accélère , et bout de 10 secondes a fond les gamelles ?
Tout est possible suffit d'être précis !
PS: Merci de préciser ton PIC
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
Bonjour Jérémy
tous d’abord désole pour l'erreur de frappe.
Pour ma question ta dernière proposition et celle que je veux a savoir plus le temps d'appuie et long et plus sa speed, bien sur avec des palier de 3 a 5 second d'appuie.
Les autres options sont intéressante a étudier.Merci
sur ta 5eme ligne je suppose que --en appuyant "qur" veut dire "sur"
pour le pic16f877A en Mikroc
tous d’abord désole pour l'erreur de frappe.
Pour ma question ta dernière proposition et celle que je veux a savoir plus le temps d'appuie et long et plus sa speed, bien sur avec des palier de 3 a 5 second d'appuie.
Les autres options sont intéressante a étudier.Merci
sur ta 5eme ligne je suppose que --en appuyant "qur" veut dire "sur"
pour le pic16f877A en Mikroc
mikroc et les BP
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Pour ma question ta dernière proposition et celle que je veux a savoir plus le temps d'appui et long et plus sa speed, bien sur avec des palier de 3 a 5 second d'appuie.
Ok je pense que c'est faisable assez facilement !
Encore une fois je vois deux solutions différentes pour arriver à a peu prêt le même résultat . Un peu comme sur les réveils sur nos tables de nuit .
Soit c'est la vitesse de l'incrémentation qui augmente donc le temps entre deux incrémentations , soit on augmente la valeur de l'incrémentation , c'est à dore qu'au lieu d'avancer de 1 en 1 , on augmente de 3 en 3 , puis de dix en dix par exemple .
As-tu déjà écrit un bout de code ? si OUI merci de le publier comme ça on comprendras mieux la finalité
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
Code : Tout sélectionner
unsigned short mask (unsigned short num){
switch(num)
{
case 0:return 0x7e;
case 1:return 0x30;
case 2:return 0x6d;
case 3:return 0x79;
case 4:return 0x33;
case 5:return 0x5b;
case 6:return 0x5f;
case 7:return 0x70;
case 8:return 0x7F;
case 9:return 0x73;
//case 0: PORTB = 63; break;
//case 1: PORTB = 6; break;
//case 2: PORTB = 91; break;
//case 3: PORTB = 79; break;
//case 4: PORTB = 102; break;
//case 5: PORTB = 109; break;
//case 6: PORTB = 125; break;
//case 7: PORTB = 7; break;
//case 8: PORTB = 127; break;
//case 9: PORTB = 111; break;
}
}
#define plus PORTD.B0
#define moins PORTD.B1
#define start PORTD.B2
#define TMAX 9999
#define TMIN 0
unsigned int count = 0;
unsigned int count1 = 0;
unsigned int count2 = 0;
unsigned int count3 = 0;
unsigned int count4 = 0;
unsigned int meme = 2;
unsigned int nombre;
////unsigned int a_mem;
unsigned short i;
unsigned int oldstate;
void Interrupt(){
count4= (count/1000)%10; // AFFICHAGE 0000
count3= (count/100)%10;
count2 = (count/10)%10;
count1 = count%10;
if(i==0) {PORTA = 0xf7; portb=mask(count1);} //0xfe direct
if(i==1) {PORTA = 0xfb; portb=mask(count2);} //0xfd
if(i==2) {PORTA = 0xfd; portb=mask(count3);} //0xfb
if(i==3) {PORTA = 0xfe; portb=mask(count4);} //0xf7
i++;if (i==4) i=0 ;
INTCON = 0xA0;
TMR0 = 6;
}
void main(void)
{
OPTION_REG = 0x82;
TMR0 = 6;
INTCON = 0xA0;
count= (EEPROM_Read(0x01)<<1);
count |=EEPROM_Read(0x00);
TRISA = 0x00;
TRISB = 0x00;
PORTA = 0x00; // RA3 RA2 RA1 RA0 (Common Cathode)
PORTB = 0x00; // dpgfedcba (Common Cathode)
TRISD = 0xff; // input button
PORTD = 0x00;
TRISC = 0x00; // OUTPUT LED
PORTC = 0x00;
while(1) {
if(plus==0){delay_ms(100);if(plus==0);
if(count<TMAX) count++;} // BP PLUS TEMPS
if(moins==0){delay_ms(100);if(moins==0) //BP MOINS TEMPS
if(count>TMIN) count--;}
if (Button(&PORTD, 0, 500, 0)) {oldstate = 1;delay_ms(10); //CONDITION POUR UTILISE LE BP PLUS ET MOINS
if (oldstate && Button(&PORTD, 1, 500, 0)) //POUR UNE MEMORISATION
{
EEPROM_Write(0x00, count); // MEMORISATION DES VALEURS
delay_ms(10);
EEPROM_Write(0x01, count>>1);
delay_ms(10);oldstate = 0;}}
if(start==0) // BP DEBUT DECOMPTAGE
{ count--; delay_ms(1000);
{if (count == TMIN) // CONDITION
{PORTC=0xff; // ACTIVATION RELAY.
delay_ms(2000); // ...2S
count= (EEPROM_Read(0x01)<<1);
count |=EEPROM_Read(0x00);
PORTC=0;
} } }
}
}
désole.
Modifié en dernier par nebukadnezare le dim. 4 oct. 2015 19:36, modifié 2 fois.
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
je vient juste de le finir avec le remerciement de "Mike118" pour résoudre le problème de la mémorisation en utilisons le BP PLUS suivie de MOINS et sa marche ,le truck c'est que je ne sait pas si mon code est bien ou pas ? (au passage je suis vraiment débutant en programmation) , j'ai remarquer que l’incrémentation en PLUS++ et plus lente de la décrémentation MOINs-- , d'ou je cherche a accéléré les incrémentations.
Si toute fois il y a des améliorations je t'en prie.
Si toute fois il y a des améliorations je t'en prie.
mikroc et les BP
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
je me dois d'être chiant : mais il faut lire ceci. j'ai mis exprès des règles "raccourcies" dans l'encadré en rouge . Les règles du forum .
Merci d’éditer ton POST avec le programme et de le placer dans des balises [code=php]Ton programme ici sans l'espace[ /code]
je ne connais pas de "Mike118" !
Si je comprends bien, ton problème à été résolu ?
Si tu débute ce forum est fait pour toi !
Je regarde ton programme mais je suis moi même en plein apprentissage, j'ai quelques notions de bases.
PS : mode chiant On, fait attention à la tournure de tes phrases, c'est limite compréhensible ! Une petite re-lecture avant "d'envoyer"
Merci d’éditer ton POST avec le programme et de le placer dans des balises [code=php]Ton programme ici sans l'espace[ /code]
je ne connais pas de "Mike118" !
Si je comprends bien, ton problème à été résolu ?
Si tu débute ce forum est fait pour toi !
Je regarde ton programme mais je suis moi même en plein apprentissage, j'ai quelques notions de bases.
PS : mode chiant On, fait attention à la tournure de tes phrases, c'est limite compréhensible ! Une petite re-lecture avant "d'envoyer"
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
Tu sais le code chiant; il accélère l'apprentissage t’inquiète.
Pour mike118 il est sur un autre forum.
pour le code ok j'ai trouver .
Le problème a été résolue au niveau de l'utilisation de 2 boutons pour mémorisé.
Ce qui me reste et de : 1 - pourquoi la vitesse des incrémentations + et - sont différentes dans mon code ?.
2- il me faut l’accélération des incrémentations comme tu a propose avec un appuie de plus en plus long.
Pour mike118 il est sur un autre forum.
pour le code ok j'ai trouver .
Le problème a été résolue au niveau de l'utilisation de 2 boutons pour mémorisé.
Ce qui me reste et de : 1 - pourquoi la vitesse des incrémentations + et - sont différentes dans mon code ?.
2- il me faut l’accélération des incrémentations comme tu a propose avec un appuie de plus en plus long.
mikroc et les BP
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Je n'en suis pas encore rendu , à l’écriture et à la lecture en EEPROM, je ne pourrais pas t'aider dans cette partie.
Le tout premier conseils concerne l’indentation de programme . Il faut faire un effort pour que ce soit plus lisible et compréhensible pour une tierce personne .
Par exemple à la place d'ecrire ceci
Il est préférable d'ecrire ceci , même si ce que tu as écris est compris par le compilateur sans problème, cela facilite grandement le débogage future.
Ainsi tu aurais remarqué que tu avais un ; en trop sur la 3iéme ligne.
Sinon je ne vois pas pourquoi la décrémentation est plus rapide que l'incrémentation ! Bizarre
As -tu testé en réel ce programme ?
N'hésite pas à gaver de commentaire , surtout quand on débute . Par exemple, à combien est réglé ton interruption sur le TMR0 ? une seconde ?
Dans ton interruption tu fais à mon avis trop de chose . il faut dissocier ton interruption qui est le débordement de ton Timer0 avec la tache à traiter c'est à dire l'affichage des chiffres .
Ne prends pas tout au pied de la lettre , je débute aussi, mais un expert va peut être passé par la !
L'idée serait quand ton BP est appuyé, on créer une boucle qui incrémente un compteur afin de déterminer le temps d'appui sur le BP. une fois une certaine valeur de "compteur" atteinte cela signifie que ça fait un moment qu'il est appuyé donc on accélère la cadence en diminuant une pause pour la mise à jour de l'affichage .
Voila l'idée
Mais il manque des détails sur le fonctionnement général du décompteur . par exemple il décompte en secondes ?
pourquoi enregistrer une valeur ? pour remettre a l'allumage ?
Je pense qu'il te faut plus de fonctions .
Une fonction réglage, donc sans timer , puis une fonction main "décomptage" qui décompte avec interruption sur TIMER0.
Je veux bien faire le programme mais il me faut des réponses
Le tout premier conseils concerne l’indentation de programme . Il faut faire un effort pour que ce soit plus lisible et compréhensible pour une tierce personne .
Par exemple à la place d'ecrire ceci
Code : Tout sélectionner
if(plus==0){delay_ms(100);if(plus==0);
if(count<TMAX) count++;}
Il est préférable d'ecrire ceci , même si ce que tu as écris est compris par le compilateur sans problème, cela facilite grandement le débogage future.
Code : Tout sélectionner
if(plus==0){
delay_ms(100);
if(plus==0);
if(count<TMAX)
count++;
}
Ainsi tu aurais remarqué que tu avais un ; en trop sur la 3iéme ligne.
Sinon je ne vois pas pourquoi la décrémentation est plus rapide que l'incrémentation ! Bizarre
As -tu testé en réel ce programme ?
N'hésite pas à gaver de commentaire , surtout quand on débute . Par exemple, à combien est réglé ton interruption sur le TMR0 ? une seconde ?
Dans ton interruption tu fais à mon avis trop de chose . il faut dissocier ton interruption qui est le débordement de ton Timer0 avec la tache à traiter c'est à dire l'affichage des chiffres .
Ne prends pas tout au pied de la lettre , je débute aussi, mais un expert va peut être passé par la !
L'idée serait quand ton BP est appuyé, on créer une boucle qui incrémente un compteur afin de déterminer le temps d'appui sur le BP. une fois une certaine valeur de "compteur" atteinte cela signifie que ça fait un moment qu'il est appuyé donc on accélère la cadence en diminuant une pause pour la mise à jour de l'affichage .
Voila l'idée
Mais il manque des détails sur le fonctionnement général du décompteur . par exemple il décompte en secondes ?
pourquoi enregistrer une valeur ? pour remettre a l'allumage ?
Je pense qu'il te faut plus de fonctions .
Une fonction réglage, donc sans timer , puis une fonction main "décomptage" qui décompte avec interruption sur TIMER0.
Je veux bien faire le programme mais il me faut des réponses
mikroc et les BP
-
nebukadnezare
Membre- Messages : 9
- Enregistré en : octobre 2015
oui j'ai déjà fait ma carte et c'est toujours le même problème de vitesse. je comprend pas.
Pour le décomptage il est en seconde.
La sauvegarde de la dernière valeur c'est comme une boucle de travail ; faut pas a chaque fois remettre le temps.
Sinon c'est un pic16f877A a 8Mhz le TMR0 je l'ai calculer avec le TIMER CALCULATOR et régler a 1ms.
voila pour les infos .
Pour le décomptage il est en seconde.
La sauvegarde de la dernière valeur c'est comme une boucle de travail ; faut pas a chaque fois remettre le temps.
Sinon c'est un pic16f877A a 8Mhz le TMR0 je l'ai calculer avec le TIMER CALCULATOR et régler a 1ms.
voila pour les infos .
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 25 invités