- Robot Maker
- → Affichage d'un profil : Messages: babylone_59
babylone_59
Inscrit(e) (le) 18 janv. 2008Déconnecté Dernière activité mai 21 2008 08:44





Statistiques de la communauté
- Groupe Membres
- Messages 28
- Visites sur le profil 4 952
- Titre Nouveau membre
- Âge Âge inconnu
- Date de naissance Anniversaire inconnu
-
Gender
Non spécifié
Outils utilisateur
Messages que j'ai postés
Dans le sujet : Programme 16F877A
21 mai 2008 - 05:44
merci
Dans le sujet : Programme 16F877A
21 mai 2008 - 05:07
Il faut le faire sous Mplab avec un compilateur C comme Hi Tech Picc mais je n'arrive pas a configurer Mplab avec HI tech Picc donc je fais d'abord mon prog en attendant de trouver un PC ou sa tourne bien avec un prog de PIC.voila voila
Dans le sujet : Programme 16F877A
21 mai 2008 - 03:32
--Déclaration
#define IN1 pin_A0
#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3
#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5
#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7
#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1
#define tt_droit()
{
moteur_Ga_s1(av,100);
moteur_Dr_s1(ar,100);
}
#define a_gauche()
{
while (capteur_Dr!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}
#define a_droite()
{
while (capteur_Ga!=0)
{
moteur_Ga_s1(av,100);
moteur_Dr_s2(ar,100);
}
}
#define demi_tour()
{
while(capteur_ga!=0) and (capteur_ga!=0)
{
moteur_Ga_s2(av,100);
moteur_Dr_s1(ar,100);
}
}
--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0
capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;
moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;
}
-- prog principal:
main()
{
Init();
while(1) // Répéter toujours
{
if(capteur_Dr==1)and(capteur_Ga==1)demi_tour();
else if(capteur_Dr ==1)a_gauche();
else if(capteur_Ga==1) a_droite();
else tt_droit();
}
}
Par contre je ne suis pas sur qu'avec (av, 100) sa fonctionne.
Je doit mettre quoi (1, 100) non ?
Juste ce petit bout se code peut me faire éviter les obstacles?
Dans le sujet : Programme 16F877A
21 mai 2008 - 12:43
Ou et comment sont elles définies?
De meme il faut définir que pre==1 et abs==0?
Pour commencer j'aimerai juste que mon robot évite les obstacles.
Dans le sujet : Programme 16F877A
20 mai 2008 - 10:06
--Déclaration
#define IN1 pin_A0
#define capteur_Dr RB1
#define capteur_Ga RB2
#define capteur_Ha RB3
#define moteur_Ga_s1 RB4
#define moteur_Ga_s2 RB5
#define moteur_Dr_s1 RB6
#define moteur_Dr_s2 RB7
#define moteur_Ha_s1 RC0
#define moteur_Ha_s2 RC1
--initialisation (pour configurer les bits des ports en entrée/sortie, etc):
void Init(void)
{
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISB=0b11100000;
TRISC=0b00111111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active l'interruption de débordement du registre TMR0
capteur_Dr =0 ;
capteur_Ga =0 ;
capteur_Ha =0 ;
moteur_Ga_s1= 1;
moteur_Dr_s1= 1;
moteur_GA_s2= 0;
moteur_Dr_s2= 0;
moteur_Ha_s1=0 ;
moteur_Ha_s2=0 ;
}
-- prog principal:
main()
{
Init();
while(1) // Répéter toujours
{
action1();
action2();
...
}
}
j'ai quelques petites questions:
Au niveau des déclarations, je suis obligé de mettre tout sa:
ADCON1 = 0x07;
GIE=1; PEIE=1; // Autorise les interruptions
OPTION=0b10000001; // Configure tmr0 pour 64µs par bit
TRISA=0b00000011; //en entree c 1
TRISB=0b11111111;
TRISC=0b11011111;
TMR0=0; // Confiqure la valeur de départ du registre TMR0
T0IE=1; // Active
ou alors je n'en ai pas l'utilité?
Aussi au niveau du programme principal
je laisse mon while(1) pour boucler a l'infini mais au niveau ds actions 1 ... je fais quoi?
si je veux faire un :
while capteur_Ga=1 then moteur_Ga_sens_2=1 and moteur_Ga_sens_1=0
or while capteur_Dr=1 then moteur_Dr_sens_2=1 and moteur_Dr_sens_1=0
or while capteur_Ha=1 and capteur_Ga=1 and capteur_Dr=1 then moteur_Ha_sens_1=1
...
comment l'integrer a mon programme principal?
Merci
- Robot Maker
- → Affichage d'un profil : Messages: babylone_59
- Privacy Policy