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
question sur langage c pour pic
Bonsoir tout le monde,
J'ai 2 questions concernant ces lignes de code dans ce programme du pwm du pic 16f887
if (Button(&PORTA, 0,1,0)) /* Si le bouton connecté à RA0 est
pressé*/
current_duty++ ; // incrémenter la valeur de current_duty
if (Button(&PORTA, 1,1,0)) /* Si le bouton connecté à RA1 est
1- : if (Button(&PORTA, 0,1,0)) dans ces 2 lignes le 1er 0 est pour designer RA0, et le 1 dans la 2eme ligne pour RA1 quelle
est la fonction de 1, 0 qui suit juste apres ?
2- if (Bouton (&.... la fonction bouton me semble permet d'eviter les rebonds des bouton poussoir? et que fait ce signe & ( adresse de )
RA0 ET RA1 sont reliées via des resistances a 5V, donc quand on appuie sur le bouton on les met a 0.
Merci
J'ai 2 questions concernant ces lignes de code dans ce programme du pwm du pic 16f887
if (Button(&PORTA, 0,1,0)) /* Si le bouton connecté à RA0 est
pressé*/
current_duty++ ; // incrémenter la valeur de current_duty
if (Button(&PORTA, 1,1,0)) /* Si le bouton connecté à RA1 est
1- : if (Button(&PORTA, 0,1,0)) dans ces 2 lignes le 1er 0 est pour designer RA0, et le 1 dans la 2eme ligne pour RA1 quelle
est la fonction de 1, 0 qui suit juste apres ?
2- if (Bouton (&.... la fonction bouton me semble permet d'eviter les rebonds des bouton poussoir? et que fait ce signe & ( adresse de )
RA0 ET RA1 sont reliées via des resistances a 5V, donc quand on appuie sur le bouton on les met a 0.
Merci
Code : Tout sélectionner
CCP1CON =0b00111110; /* Uniquement pour la simulation.
Enlever cette instruction avant
de programmer le microcontrôleur*/
PWM1_Init(5000); // Initialisation du module PWM (5KHz)
}
void main() // Programme principal
{
initMain();
current_duty = 155; /* Valeur initiale de variable
current_duty*/
old_duty = 0; // RAZ de variable old_duty
PWM1_Start(); // Start du module PWM1
while (1)
{ // Boucle sans fin
if (Button(&PORTA, 0,1,0)) /* Si le bouton connecté à RA0 est
pressé*/
current_duty++ ; // incrémenter la valeur de current_duty
if (Button(&PORTA, 1,1,0)) /* Si le bouton connecté à RA1 est
pressé*/
current_duty-- ; // décrémenter la valeur de current_duty
if (old_duty != current_duty)
{ /* Si les variables current_duty et
old_duty ne sont pas égales*/
PWM1_Set_Duty(current_duty); // Charger PWM à la nouvelle valeur
old_duty = current_duty; /* Sauvegarder la nouvelle valeur
PORTB = old_duty; et l'afficher sur le PORTB*/
}
Delay_ms(150); // Retardement de 150ms
}
}
question sur langage c pour pic
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
il suffit de lire l' Help de la librairie Button
unsigned short Button(unsigned short *port, unsigned short pin, unsigned short time, unsigned short active_state);
unsigned short *port => pointeur sur l'adresse du port soit &PORTA
unsigned short pin 0 pour RA0 , 1 pour RA1 ..etc numero du bit concerné dans le port
unsigned short time duree de "filtrage" en mS .. pas tres clair ici
unsigned short active_state si on considere que le BP est actif au niveau logique 0 => 0
sinon on met 1. si c'est en appliquant un 1 logique que le BP est actif
nota : BP = Bouton Poussoir
je ne me suis jamais servi de cette fonction..
ce qui est curieux c'est que le debounce time est toujours à 1 dans les multiples exemples vus sur la toile
(donc 1 mS ou byte representant un état logique permettant de rajouter ce debounce time , qui serait alors defini ou ça ?
tu peux toujours tester avec un debounce time de 100 ou 255 ..pour voir .
un amateur ASM pour debroussailler ceci ?
il suffit de lire l' Help de la librairie Button
unsigned short Button(unsigned short *port, unsigned short pin, unsigned short time, unsigned short active_state);
unsigned short *port => pointeur sur l'adresse du port soit &PORTA
unsigned short pin 0 pour RA0 , 1 pour RA1 ..etc numero du bit concerné dans le port
unsigned short time duree de "filtrage" en mS .. pas tres clair ici
unsigned short active_state si on considere que le BP est actif au niveau logique 0 => 0
sinon on met 1. si c'est en appliquant un 1 logique que le BP est actif
nota : BP = Bouton Poussoir
je ne me suis jamais servi de cette fonction..
ce qui est curieux c'est que le debounce time est toujours à 1 dans les multiples exemples vus sur la toile
(donc 1 mS ou byte representant un état logique permettant de rajouter ce debounce time , qui serait alors defini ou ça ?
tu peux toujours tester avec un debounce time de 100 ou 255 ..pour voir .
un amateur ASM pour debroussailler ceci ?
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 113 invités