Step/Dir - исходник?

создание собственных программ управления станком, управление LPT

Модераторы: Ruz_and, Master-VRI, al-drw, Мастак

Аватара пользователя
Horeen
Сообщения: 1905
Зарегистрирован: Сб янв 16, 2010 00:00

Re: Step/Dir - исходник?

Сообщение Horeen » Пн апр 16, 2012 16:15

Используется иногда как отдельный независимый сигнал. Служить может двум целям (в разных драйверах по разному) - либо подача напруги на драйвер, либо принудительный перевод в режим удержания пониженным током.
Обратите внимание, что этот сигнал нигде не задействован в приведённых выше исходниках (просто числится в списках).

Аватара пользователя
Ruz_and
Сообщения: 510
Зарегистрирован: Вс ноя 09, 2008 00:00
Откуда: РТ г. Лениногорск
Контактная информация:

Re: Step/Dir - исходник?

Сообщение Ruz_and » Пн апр 16, 2012 17:22

вот первые исходники с комментариями должно быть понятно
# include "ioavr.h"

#define Step PIND_Bit2 // маркировка ножек контроллера
#define Dir PIND_Bit1
#define Enable PIND_Bit0

__flash unsigned int cod[8] = {1,3,2,6,4,12,8,9}; // масив полушага
int X = 0; переменна для счета шагов по массиву
unsigned char dim_set = 0; // переменна для сожраненния состояния ножки DIR
void init_port(void) //инициализация порта
{
DDRD = 0x00; // порт на вход
PORTD = 0x07; // подтянут на +5
DDRB = 0xFF; // порт на выход
PORTB = 0x00; // посажен на землю
}

void main (void)
{
init_port();
PORTB = 0; // сброс порта в ноль
while (1) // бесконечный цикл
{
if (Step == 0) // Если на ножке step 0
{
dim_set = Dir; // запоминаем состояние ножки DIR
if (dim_set == 1) // если ножка dir лог 1
{
X++; // то движение в плюс полушаг
if(X>7) X=0; // если достигли конца мосива вернутьс в ноль
PORTB = cod[X]; // выдача сигнала в порт
}

if (dim_set == 0) // если сигнал DIR лог 0
{
X--; // то движение в минус полушаг
if(X<0) X=7; // проверка не ушли ли за отрицательную зону массива вернутьс в конец масива
PORTB = cod[X]; // выдача сигнала в порт
}
while (Step==0) // пока ношка STEP внуле делать бесконечный цикл
{} // цикл пустой ни чего не выполняется
}

}
}
Не стреляйте из пушки по комарам (Конфуций)

Аватара пользователя
Horeen
Сообщения: 1905
Зарегистрирован: Сб янв 16, 2010 00:00

Re: Step/Dir - исходник?

Сообщение Horeen » Пн апр 16, 2012 18:23

О как. Теперь очень даже понятно. Не подумал, что "while (Step==0)" отдельная команда, а не завершение "if (Step == 0)". Бум знать.

Аватара пользователя
lucky_sever
Сообщения: 25
Зарегистрирован: Ср июн 30, 2010 23:00
Откуда: Брест
Контактная информация:

Re: Step/Dir - исходник?

Сообщение lucky_sever » Пн апр 16, 2012 21:41

Horeen писал(а):Используется иногда как отдельный независимый сигнал. Служить может двум целям (в разных драйверах по разному) - либо подача напруги на драйвер, либо принудительный перевод в режим удержания пониженным током.
Обратите внимание, что этот сигнал нигде не задействован в приведённых выше исходниках (просто числится в списках).


OK! Все понятно

Скажите, а откуда выдернут этот код?


Вернуться в «програмирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя

cron