Mình điều khiển 3 động cơ bước qua a4988 như mạch trong file đính kèm.
Nhưng khi đổ code vào chip thì động cơ không chạy. Nhưng mình mô phỏng thì chạy tốt
Mong mọi người giúp.
Thank!!
AT16.zip
Nhưng khi đổ code vào chip thì động cơ không chạy. Nhưng mình mô phỏng thì chạy tốt
Mong mọi người giúp.
Thank!!
AT16.zip
Code:
#define F_CPU 12000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int x = 0; int y = 0; int z = 0; int cp = 0; int buoc=0; int main(void) { /* Replace with your application code */ DDRC=0xFF; DDRD=0x00; PORTD=0x00; PORTC=0xFF; MCUCR|=(1<<ISC11)|(1<<ISC01); MCUCSR|=(1<<ISC2); GICR |=(1<<INT2)|(1<<INT1)|(1<<INT0); sei(); while (1) { //if ((PIND&0x01) == 0) {x=20;y=20;z=20;} _delay_ms(10); if(cp==1) if (x!=0) { PORTC=~(1<<PORTC0); chay_buoc(x); if(buoc==0){ x=0; PORTC=~(0<<PORTC0); } } _delay_ms(20); if (cp==2) if (y!=0) { PORTC=~(1<<PORTC1); chay_buoc(y); if(buoc==0){ y=0; PORTC=~(0<<PORTC1); } } _delay_ms(20); if (cp==3) if (z!=0) { PORTC=~(1<<PORTC2); chay_buoc(z); if(buoc==0){ z=0; cp=0; PORTC=~(0<<PORTC2); } } } } void chay_buoc(int buoc) { while(buoc!=0) { PORTC^=(1<<PORTC3); buoc--; _delay_ms(150); } } ISR (INT0_vect){ cp++; if (cp==4) cp=0; _delay_ms(10); } ISR (INT1_vect){ x=200;y=200;z=20; //PORTC^=(1<<PORTC4); _delay_ms(10); }