??? 01/18/10 21:28 Read: times |
#172569 - Here is the code... Responding to: ???'s previous message |
Hello Everyone,
Here is the code I wrote using Mr. Ferlemann's suggestions. Am I making a mistake anywhere? Also, I couldn't understand a word of the code posted by Mr. Murray R. Van Luyn ( unfortunately my knowledge of embedded C is quite poor). Can someone please explain the algorithm of the code or the concept used in his code? Thanks a lot, in advance. #include<reg51.h> #include<stdio.h> sbit MTRS=P2^0; sbit MTRE=P2^1; sbit MTRW=P2^2; sbit MTRH=P2^3; static unsigned char ms_tenth; static unsigned char target1; static unsigned char target2; static unsigned char target3; static unsigned char target4; void servo(char,char,char,char); void msdel(unsigned int); void Timer0_ISR (void) interrupt 1 { MTRS=(ms_tenth < target1); MTRE=(ms_tenth < target2); MTRW=(ms_tenth < target3); MTRH=(ms_tenth < target4); if (++ms_tenth == 200) ms_tenth = 0; TF0 = 0; } void servo(char w,char x,char y,char z) { TR0=1; target1=w; target2=x; target3=y; target4=z; msdel(8000); } void msdel(unsigned int major) {unsigned int i,j; for(i=1;i<major;i++) for(j=1;j<10;j++); } void main(void) {TMOD=0x02; IE=0x82; TH0=0xA3; MTRS=0; MTRE=0; MTRW=0; MTRH=0; ms_tenth = 0; target1=0; target2=0; target3=0; target4=0; {servo(21,10,14,23); servo(20,12,14,23); servo(20,14,14,23); servo(20,17,14,23); servo(20,17,17,23); servo(20,14,14,16); servo(20,10,12,16); servo(21,10,14,16); } for(;;); } |