[Débutant] Problème programmation PIC10F200
Résolu
GroRelou
-
GroRelou -
GroRelou -
Bonjour,
le pic10F200 est composé de 4 pin (extrait du .h):
PIN_B0 (GP0),
PIN_B1 (GP1),
PIN_B2 (GP2/TOCK/FOSC4),
PIN_B3 (GP3/MCLRbar).
j'arrive a mettre les pin B0,B1 et B2 à l'état haut avec :
output_high(PIN_B0);
par contre impossible de mettre PIN_B3 à l'état haut.
pourtant j'ai bien mis : #fuses NOMCLR
programme:
Code:
#include <10f200.h>
#use delay (clock=4000000)
#fuses NOMCLR
void main(){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
le pic10F200 est composé de 4 pin (extrait du .h):
PIN_B0 (GP0),
PIN_B1 (GP1),
PIN_B2 (GP2/TOCK/FOSC4),
PIN_B3 (GP3/MCLRbar).
j'arrive a mettre les pin B0,B1 et B2 à l'état haut avec :
output_high(PIN_B0);
par contre impossible de mettre PIN_B3 à l'état haut.
pourtant j'ai bien mis : #fuses NOMCLR
programme:
Code:
#include <10f200.h>
#use delay (clock=4000000)
#fuses NOMCLR
void main(){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
A voir également:
- [Débutant] Problème programmation PIC10F200
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
3 réponses
Désolé, je ne connais pas le C du PIC. Je ne programme les pics qu'en assembleur.
La réponse est dans la doc de ton compilateur C, il doit bien avoir des fonctions ou des macro prédéfinies pour lire l'état d'un port.
La réponse est dans la doc de ton compilateur C, il doit bien avoir des fonctions ou des macro prédéfinies pour lire l'état d'un port.
En fait c'était tout bête car la condition était: Input(PIN_B3)
voila la réponse :
#include <10f200.h>
#use delay (clock=4000000)
#fuses NOMCLR
void allumePIN_B0(){
output_high(PIN_B0);
delay_ms(250);
output_low(PIN_B0);
delay_ms(250);
}
void allumePIN_B1(){
output_high(PIN_B1);
delay_ms(250);
output_low(PIN_B1);
delay_ms(250);
}
void allumePIN_B2(){
output_high(PIN_B2);
delay_ms(250);
output_low(PIN_B2);
delay_ms(250);
}
void main(){
while(true){
while(INPUT(PIN_B3)){
allumePIN_B0();
delay_ms(250);
allumePIN_B1();
delay_ms(250);
allumePIN_B2();
delay_ms(250);
}
while(!INPUT(PIN_B3)){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
delay_ms(250);
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
delay_ms(250);
}
}
}
voila la réponse :
#include <10f200.h>
#use delay (clock=4000000)
#fuses NOMCLR
void allumePIN_B0(){
output_high(PIN_B0);
delay_ms(250);
output_low(PIN_B0);
delay_ms(250);
}
void allumePIN_B1(){
output_high(PIN_B1);
delay_ms(250);
output_low(PIN_B1);
delay_ms(250);
}
void allumePIN_B2(){
output_high(PIN_B2);
delay_ms(250);
output_low(PIN_B2);
delay_ms(250);
}
void main(){
while(true){
while(INPUT(PIN_B3)){
allumePIN_B0();
delay_ms(250);
allumePIN_B1();
delay_ms(250);
allumePIN_B2();
delay_ms(250);
}
while(!INPUT(PIN_B3)){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
delay_ms(250);
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
delay_ms(250);
}
}
}
j'ai une autre question. Je veux faire l'exercice suivante :
https://www.youtube.com/watch?v=vJ4MmrL-xgY&gl=FR
la personne fait une démonstration sur YouTube et j'ai fais la manip en même temps que lui.
sa marche pour le schéma 1 et 2. mais tout à la fin de la video il y a un schéma 3 qu'il montre rapidement et que j'essai de faire mais je n'y arrive pas car il faut gérer un bouton sur GP3.
A tu une idée de comment il faut faire en gros ?
merci
Maintenant le port GP3 est constamment à 1. Lorsque je clic sur le bouton le pour GP3 passe à 0.
Quel est la commende en C pour lui dire :
quand GP3 passe à 0 alors ...
merci