Aller au contenu


Contenu de walid_med-RX

Il y a 1 élément(s) pour walid_med-RX (recherche limitée depuis 03-avril 13)


#22613 programme en mikroc

Posté par walid_med-RX sur 05 juin 2011 - 11:11 dans Programmation


slt j'ai fais un petit programme en mikroc et j'ai declaréé l'angle desiré (theta1) et jai voulue quand theta1 et mesure1 seront égaux le moteur (PORTD4 et 5) stop
mais sa fonctionne pas avec protéus svp aidez moi ,ou est le probleme ( je pense que le probleme est dans le calcule )help me
voila le programme:



unsigned float pot;
unsigned float pot2;
unsigned float pot3;
unsigned float pot4;
unsigned float pot5;
unsigned float pot6;
double theta1;
double theta2;
double mesure1;

#define M1_actif {PORTD.F1=1;PORTD.F0=0;PORTC.F3=1;}
#define M1_avant {PORTD.F4=1;PORTD.F5=0;}
#define M1_ariere {PORTD.F4=0;PORTD.F5=1;}

void angle()
{
double Px=2;
double Py=5;
double Pz=0;

{
theta1=atan2(Py,Px);
}

}

void main()
{
ADCON1=0x80;
TRISA=0xFF;
TRISB=0x00;
TRISC=0x00;
TRISD=0x00;
while(1)
{
pwm_init(5000);
pwm_start();
pwm_change_duty(128);

pot=Adc_Read(0);
mesure1=pot*(160/255)-80;
angle();

if(mesure1==theta1)
{
PORTD=0;
}
else if(mesure1 {
M1_actif;
M1_avant;
}
else
{
M1_actif;
M1_ariere;
}

}
}[/code]