Есть задача управлять шаговиком от Привода, тем который двигает каретку лазера, по определенному алгоритму, то есть подача на 10 шагов вперед пауза, подача на исходное положения, то есть на десять шагов назад!
Написал программу в CodeVision в итоге при нажатии кнопки у меня шаговик ползет в одну сторону, при нажатии другой кнопки ползет обратно.
Но вот как задать количество шагов в одну сторону. и обратно, не могу вкурить. Посему прошу направить на путь истинный, советом или ссылочкой, на тему где можно побольше для себя почитать!
Вот код
Код: Выделить всё
#include <mega328p.h>
#include <delay.h>
void vpered (void)
{
PIND.4=1;
PIND.5=0;
PIND.6=0;
PIND.7=0;
delay_ms(25);
PIND.4=0;
PIND.5=0;
PIND.6=1;
PIND.7=0;
delay_ms(25);
PIND.4=0;
PIND.5=1;
PIND.6=0;
PIND.7=0;
delay_ms(25);
PIND.4=0;
PIND.5=0;
PIND.6=0;
PIND.7=1;
delay_ms(25);
}
void nazad(void)
{
PIND.4=0;
PIND.5=0;
PIND.6=0;
PIND.7=1;
delay_ms(25);
PIND.4=0;
PIND.5=1;
PIND.6=0;
PIND.7=0;
delay_ms(25);
PIND.4=0;
PIND.5=0;
PIND.6=1;
PIND.7=0;
delay_ms(25);
PIND.4=1;
PIND.5=0;
PIND.6=0;
PIND.7=0;
delay_ms(25);
}
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTD=0x00;
DDRD=0xFF;
while (1)
{
if (PINC.5==0)
vpered();
if (PINC.4==0)
nazad();
}
}


