1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
int i=0;
void temps()
{
int w; ;
intcon.gie=0;
w=0x31;
option_reg=w;
{
if(intcon.t0if=1)
{intcon.t0if=0;
i++;
}
}
}
main()
{
int i,m0,m1,m2,m3,t,Sm0,Sm1,Sm2,Sm3,Rm0,Rm1,Rm2,Rm3,c,,h;
//initialisation
TRISB=0;
TRISA=1;
i=0;
m0=1;//etape0
m1=0;//etape1
m2=0;//etape2
m3=0;//etape3
portb.f0=0;//rotation
portb.f2=0;//montee
portb.f1=0;//descente
c=porta.f2;
while(!c)
{
//lecture
int a,b,c,d,e;
a=porta.f0; //lecture de depart cycle
b=porta.f1; //lecture arret cycle
c=porta.f2; //lecture arret urgent
d=porta.f3; //lecture capteur haut
e=porta.f4; //lecture capteur bas
//traitement
Sm0=m3*d; Rm0=m1; m0=Sm0+(!Rm0*m0);
Sm1=m0*d*a; Rm1=m2; m1=Sm1+(!Rm1*m1);
Sm2=m1*e; Rm2=m3; m2=Sm2+(!Rm2*m2);
if(m2==1)
{
do
{
temps();
}
while(i<10) ;
t=1;i=0;
}
Sm3=m2*t; Rm3=m0 ; m3=Sm3+(!Rm3*m3);
//affectation des sorties
portb.f1=m1;//descente
portb.f0=m1+m2+m3;//rotation
portb.f2=m3+m0*!d;//montée
}
} |
Partager