Bonjour,
je travaille sur un projet robotique où le robot doit détecter un obstacle puis tourner pour ainsi éviter l’obstacle.
Malheureusement j’ai un problème de compilation ou de programme . J’utilise Mplab v8 et hi-tech software (PICC).
J’ai suivis ce tutorial pour bien crée mon projet .( http://angeliz.free.fr/ )
J’ai cru avoir un problème de librairies donc j’ai ramené*«* pic16F873.h*» dans le dossier include mais J’ai toujours des erreurs. J’ai trouvé les bouts de programme sur internes et potassé certain changement, mais je ne crois pourtant pas qu’il y ai d’erreur dans le programme.
Je vous link le programme et un screen de l’erreur.
#include<16F873.h> //fichier de déclaration des registre
#use delay(clock=4000000) //frequence a 4 Mhz
#use FAST_IO(B)
#use FAST_IO(A)
long rise,fall,pulse_width;
int8 i;
int8 cpt=0;
int8 valeur;
int k;
void init(void)
{
setup_ccp1(CCP_CAPTURE_RE); //capture sur front descendant
setup_ccp2(CCP_CAPTURE_FE); //capture sur front montant
setup_timer_1(T1_INTERNAL|T1_D IV_BY_8); //configurer le timer1
enable_interrupts(INT_CCP2);
enable_interrupts(GLOBAL);
}
#int_ccp2
void isr()
{
rise = CCP_1; //impulsion sur front montant
fall = CCP_2; //impulsion sur front descendant
pulse_width = fall - rise; //temps de d'impulsion
if(pulse_width<=0xE1) //obstacle détecté
{
disable_interrupts(GLOBAL);
output_low(pin_b1); //arreter le moteur 1
output_low(pin_b2); //arreter le moteur 2
switch(cpt){
case 0:
{
output_high(pin_b1); //tourner a droite
cpt++;
break;
}
case 1:{
output_high(pin_b1);
cpt++;
break;
}
case 2:{
output_high(pin_b2); //tourner a gauche
cpt=0;
break;
}
}
for(k=0;k<=30;k++) //attendre X s
{delay_ms (100);}
output_low(pin_b1); //arreter le moteur 1
output_low(pin_b2); //arreter le moteur 2
enable_interrupts(GLOBAL);
}
}
void main(void)
{
SET_TRIS_B(0x00); //mettre le port b en sortie
init();
while(1)
{
delay_ms(10);
output_high(pin_b3); //envoyer impulsion sur capteur msu04
delay_us(10);
output_low(pin_b3); //arreter impulsion sur capteur
}
}
Je me tourne aujourd’hui sur les forums par manque malheureusement de temps , j’ai chercher sur internet mais je n’ais pas réussi à trouver mon bonheur. Si quelqu'un de callé voit mon problème. Je peux vous mettre le montage de la carte si vous le désirez.
Alexandre
-----