www.cncmasterkit.ru • Просмотр темы - Уроки на Си.

www.cncmasterkit.ru

ЧПУ своими руками

     · ПРАВИЛА ·

Текущее время: 01 май 2017, 04:41
Сообщения без ответов | Активные темы

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
Сообщение #31  Добавлено: 22 янв 2010, 12:14 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 07 дек 2009, 01:00
Сообщения: 81
Прочитал, всё очень доступно, спасибо. Я за 3 простые вместо 1 сложной строки кода:). Такой код понятнее и его легче отлаживать. Позже, конечно, можно будет и переписать по желанию.

Резисторы и конденсаторы, пока нету ШИМ-а, можно исключить, да?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #32  Добавлено: 22 янв 2010, 13:42 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Да, конечно. Они ж на будующее:).

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #33  Добавлено: 23 янв 2010, 18:29 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 11 янв 2010, 01:00
Сообщения: 37
рассуждения по написанию "одной строки"

исходные данные - процедура обработки прерывания isr(void){}, которая по сигналу "Step"
должна проверить состояние линии "Dir" и при Dir=1 увеличить значение переменной
cur_step, а при Dir=0 - уменьшить(сигнал "Dir" - это (PORTB & 2) ).

итак при Dir=1 (...или (PORTB & 2)=2) cur_step=cur_step+1,
а при Dir=0 (...или (PORTB & 2)=0) cur_step=cur_step-1

заметим, что при (PORTB & 2)=2 нам нужна "+1", а при (PORTB & 2)=0 - "-1"
поэтому пишем (cur_step+(PORTB & 2)-1). Ну а теперь осталось ограничиться
размером таблицы, т.е. значением индекса от 0 до 3 (0,1,2,3) :

cur_step=(cur_step+(PORTB & 2)-1) & 3;
или так, что чуть лучше:
cur_step=(--cur_step+(PORTB & 2)) & 3;
все .... и вроде ничего непонятного тут нет :)

[off]
Цель - заставить людей ДУМАТЬ и искать ОПТИМАЛЬНЫЕ решения (.. и не ждать ХАЛЯВЫ)[/off]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #34  Добавлено: 23 янв 2010, 20:42 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Цитата:
или так, что чуть лучше:

И получим выигрыш в объёме кода на 3 байта в ROM, но проигрыш на 2 байта в RAM по сравнению с текстом статьи. И всё это ради того, чтобы уместить всё в одну строку, но при этом сделать листинг абсолютно нечитаемым для новичка?
Цитата:
Цель - заставить людей ДУМАТЬ и искать ОПТИМАЛЬНЫЕ решения

Уместить всё в одну строчку - далеко не всегда оптимальное решение. Как по быстродействию, так и по читаемости. Ещё раз напоминаю: статья - для новичков. Поэтому прошу в дальнейшем смотреть на происходящее в этой теме именно с этой позиции и критерием лучше/хуже считать в первую очередь читаемость и понимание общего алгоритма.
[off]
P.S. Сообщения с выяснением отношений удалил. Выясняйте в личке. А тут - только по существу. Кто не поймёт - не обижайтесь :).[/off]

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #35  Добавлено: 27 янв 2010, 13:47 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 07 дек 2009, 01:00
Сообщения: 81
koolhatcker, а продолжение к статье http://it-en.ru/cnc/doc/1.html будет? Интересна реализация ШИМ на мк.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #36  Добавлено: 27 янв 2010, 17:39 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Ну если хотите именно ШИМ, то давайте внедрим ШИМ.:)
P.S. Это ШИМ? Или не совсем?:). Попытка симуляции работы ДШИ200-2, питание 24В. Синее - опорное, зелёное - затвор ключа, красное - напряжение на датчике тока.
Изображение

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #37  Добавлено: 29 янв 2010, 19:56 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Ну раз все молчат, то вот вам пища для разговоров...:)
http://it-en.ru/cnc/doc/2.html

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #38  Добавлено: 30 янв 2010, 15:55 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
И опять все молчат...
Ждут 3-й части с полушагом и режимом удержания, т.е. исходников для готового драйвера под полушаг?:). Чую зря я тут распинаюсь...

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #39  Добавлено: 30 янв 2010, 21:00 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 280
Откуда: Россия , Питер
koolhatcker писал(а):
Чую зря я тут распинаюсь...


:no: Нет, не зря!!! Вы же описываете алгоритм, а как и к чему его применить каждый решит сам для себя. :ok:

_________________
Лучше молчать и прослыть дураком, чем открыть рот и развеять все сомнения:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #40  Добавлено: 30 янв 2010, 21:53 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 07 дек 2009, 01:00
Сообщения: 81
koolhatcker писал(а):
Ну раз все молчат, то вот вам пища для разговоров...:)
http://it-en.ru/cnc/doc/2.html


Всё очень доступно изложенно :trumbsup: Спасибо! Думал всё намного сложнее :)

Есть пара вопросов:
1. Когда (периодически или после какого-либо события) приходят прерывания с компараторов?
2. Зачем использовать ножку МК для формирования опорного напряжения? Источник питания МК не годится?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #41  Добавлено: 30 янв 2010, 22:22 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Цитата:
1. Когда (периодически или после какого-либо события) приходят прерывания с компараторов?

Это подробно описано в документации на МК:).
При изменении уровня сигнала на выходе любого компаратора устанавливается флаг прерывания от компараторов CMIF. Далее в подпрограмме обработки прерываний пользователь может проверить флаги C1OUT и C2OUT и выяснить какой именно компаратор вызвал прерывание. В рассмотренном случае как только напряжение с датчика тока превысит опорное, то тут же (типовое время задержки 150nS) будет установлен флаг CMIF и возникнет прерывание.
Цитата:
Зачем использовать ножку МК для формирования опорного напряжения? Источник питания МК не годится?

Источник питания МК вполне годится. Обратите внимание на схему - эта ножка МК является выходом имеющего в PIC16F628 аппаратного модуля ШИМ. Поэтому если в дальнейшем в драйвер захочется ввести режим снижения тока двигателя при простое, то на эту ножку можно выдавать например не уровень лог.1, а ШИМ сигнал со скважностью 50%, что позволит снизить ток в режиме удержания:).

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #42  Добавлено: 30 янв 2010, 22:50 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 28 авг 2009, 00:00
Сообщения: 7556
Откуда: Украина. Межевая.
Имя: Юрий
koolhatcker, если я в твоём первом описании таблицу шагов тупо заменяю на полушаг, и указываю что элементов таблицы стало 8, будет работать?
И там есть вот такое:
PORTB = 0x00; //Выводим в порт В нули
TRISB = 0x03; //Весь порт В кроме 2-х младших разрядов - на вывод
Строки не надо поменять местами? А то(на мой взгляд) сначала выводим данные в порт, а потом производим его настройку(ввод или вывод).

_________________
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #43  Добавлено: 30 янв 2010, 23:19 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Код:
указываю что элементов таблицы стало 8, будет работать?

Нет. Нужно ещё там где указатель меняется при приходе импульса STEP поправить. Надеюсь не в реальном железе решил проверять? Сгорит скорее всего:).
Цитата:
Строки не надо поменять местами?

Надо. Сначала - направление, потом - значение.

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #44  Добавлено: 30 янв 2010, 23:30 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 28 авг 2009, 00:00
Сообщения: 7556
Откуда: Украина. Межевая.
Имя: Юрий
Цитата:
Сгорит скорее всего

Да нивжизнь:). Униполяр, хоть все полевики сразу открой... По крайняку не вижу причины гореть:)
Цитата:
там где указатель меняется

Ага, прошляпил. И больше причин нет, так? И тогда вполне естественно добавить опрос ноги, типа "выбор режима - шаг/полушаг". Я так понимаю,это надо всунуть в программу в самом начале, после настроек портов?
Ага, так это надо и какие-то указатели на таблицы, и... Короче недорос:). Пока:).

_________________
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #45  Добавлено: 30 янв 2010, 23:57 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Цитата:
По крайняку не вижу причины гореть

Ну попробуй:).
Цитата:
И больше причин нет, так?

На первый взгляд вроде как нет(при абсолютной идентичности обмоток). Пробовать нужно, чтобы точно сказать.
Цитата:
"выбор режима - шаг/полушаг"

Мужики, только честно, кто-нибудь полным шагом пользуется?:) Мало того что на нём из-за резонанса движок не разогнать, так ещё и звук не тот :).

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #46  Добавлено: 31 янв 2010, 00:23 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 28 авг 2009, 00:00
Сообщения: 7556
Откуда: Украина. Межевая.
Имя: Юрий
Цитата:
кто-нибудь полным шагом пользуется?

Ради прикола попробовал...Раньше не использовал, и впредь не собираюсь:). Во гремит-то! Тем более что по Х осталось монолитное соединение винта и движка. С муфтой вроде помягче, но даже не сравнитиь:(.

_________________
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #47  Добавлено: 04 фев 2010, 14:30 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 07 дек 2009, 01:00
Сообщения: 81
life писал(а):
...Самое простое что приходит на ум, так это перезапускать степом таймер, при отсутствии степ таймер переполняется и по прерыванию уходим на удержание...

Через какой промежуток времени, при отсутствии STEP сигнала, ШД переводят в режим ожидания?
Какой % от номинального тока рекомендуется пропускать при удержании?

Или это всё индивидуально?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #48  Добавлено: 04 фев 2010, 15:17 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Цитата:
Через какой промежуток времени, при отсутствии STEP сигнала, ШД переводят в режим ожидания?

Через промежуток времени превышающий минимальную частоту сигнала Step.
Цитата:
Какой % от номинального тока рекомендуется пропускать при удержании?

Ток удержания должен быть таким, чтобы вал двигателя надёжно фиксировался.
[off]А вобще эти вопросы никакого отношения к программированию не имеют, поэтому завязываем с офтопиком. Подобные вопросы впредь прошу задавать в соответствующих темах форума.[/off]

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #49  Добавлено: 08 фев 2010, 20:04 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 07 сен 2009, 00:00
Сообщения: 13
Приветствую всех!
Вероятно, уже пролетала эта ссылка
www.chipenable.ru
если нет, то очень рекомендую! Более лучшего изложения я не встречал в сети.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #50  Добавлено: 27 мар 2010, 12:12 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 05 янв 2010, 01:00
Сообщения: 289
Откуда: Моск. обл. Ногинск
Dj_smart писал(а):
Вот тут Скачать файл "prog_avr_pic.rar"(9.1 мб)
А по диску... Смотри оглавление в книге, и что интересует выложу.

Классный учебник -спасибо !!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
Сообщение #51  Добавлено: 30 мар 2010, 20:19 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
Ну вот и свершилась проверка теории на практике.
Вроде даже работает.:)
http://it-en.ru/cnc/driver/Simple%20driver%20628.html
Для обсуждения вопросов работы данного устройства создал тему тут: http://www.cncmasterkit.ru/modules.php? ... 0053#10053

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #52  Добавлено: 28 окт 2012, 12:35 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 05 апр 2011, 00:00
Сообщения: 308
Откуда: Междуреченск
спасибо! изучил, все вроде понятно почему контроль степа делаем по спадающему фронту? а так же хотелось продолжения хотябы в виде теории по быстрому, медленному, смешанному спаду токов! когда и в какие моменты лучше ими пользоватся? до какого уровня можно поднять частоту ШИМ?
Если частота ШИМ 20кгц это получается 50мкс, если сигнал степ превышает это значение тогда будет пропуск шагов?
Спасибо за статью.

_________________
СЕРГЕЙ
Мое творение!
Творение дубль ДВА!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #53  Добавлено: 28 окт 2012, 13:52 
Не в сети
Смотрящий
Аватара пользователя

Зарегистрирован: 30 авг 2009, 00:00
Сообщения: 1504
Откуда: Омск
neyvert писал(а):
почему контроль степа делаем по спадающему фронту?

Потому, что вход Step подтянут к +5В и активный уровень для него - низкий.
neyvert писал(а):
теории по быстрому, медленному, смешанному спаду токов!

К данному "железу" это неприменимо. Рекомендую ознакомиться с документацией на интегральные микрошаговые драйверы - там всё это расписано.
neyvert писал(а):
до какого уровня можно поднять частоту ШИМ?

Насколько позволит МК при данной тактовой.
neyvert писал(а):
если сигнал степ превышает это значение тогда будет пропуск шагов?

Нет, пропуска не будет. Время обработки изменения уровня на входе Step около 5uS. Частота ШИМ с частотой Step связана косвенно, а не непосредственно :).

_________________
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #54  Добавлено: 28 окт 2012, 14:21 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 05 апр 2011, 00:00
Сообщения: 308
Откуда: Междуреченск
ОК! Спасибо за разьяснения.

_________________
СЕРГЕЙ
Мое творение!
Творение дубль ДВА!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
Сообщение #55  Добавлено: 05 июл 2016, 16:05 
Не в сети
Станкостроитель
Станкостроитель

Зарегистрирован: 10 дек 2015, 05:08
Сообщения: 18
Откуда: Томск
Имя: Александр
koolhatcker писал(а):
Выложил пока сюда: http://it-en.ru/cnc/doc/1.html

koolhatcker писал(а):
Ну раз все молчат, то вот вам пища для разговоров...:)
http://it-en.ru/cnc/doc/2.html

Ссылки не рабочие. Материал, наверно давно пропал? Интересно было бы почитать !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #56  Добавлено: 26 сен 2016, 07:48 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 26 май 2011, 00:00
Сообщения: 434
Откуда: Дальний восток Шимановск
Имя: Алексей
Baykonur писал(а):
koolhatcker писал(а):
Выложил пока сюда: http://it-en.ru/cnc/doc/1.html
koolhatcker писал(а):
Ну раз все молчат, то вот вам пища для разговоров...
http://it-en.ru/cnc/doc/2.html

Можно как то попросить материал или перезалить куда нибудь? Хотел на зиму занятие себе организовать)))
  Не в тему:
  в добавок к аэрографу :crazy:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #57  Добавлено: 27 сен 2016, 20:42 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 04 дек 2009, 01:00
Сообщения: 350
Откуда: Московская обл.
Имя: Виктор
В 9-м радио драйвер ШД на меге48, есть исходники на асме с коментами, на зиму должно хватить)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #58  Добавлено: 28 сен 2016, 07:28 
Не в сети
Станкостроитель
Станкостроитель
Аватара пользователя

Зарегистрирован: 26 май 2011, 00:00
Сообщения: 434
Откуда: Дальний восток Шимановск
Имя: Алексей
:company: спасибо! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки на Си.
Сообщение #59  Добавлено: 29 окт 2016, 12:43 
Не в сети
Станкостроитель
Станкостроитель

Зарегистрирован: 10 дек 2015, 05:08
Сообщения: 18
Откуда: Томск
Имя: Александр
BMB писал(а):
В 9-м радио драйвер ШД на меге48, есть исходники на асме с коментами, на зиму должно хватить)))

Спасибо, конечно! Но тема всё таки "Уроки на Си" На Сях попроще маленько, тут проблемы возникают при настройке периферии, и хотелось бы видеть примеры программирования шагового со стабилизацией тока - в 1, 1/2, микрошаге. К асму всё равно потом подходить придётся, на нём всё чётче, конечно, но потом...
Пока нарыл книгу Программирование на языке C для AVRи PIC микроконтроллеров Ю.А.Шпак 2011-600M и полезный сайтик - easyelectronics.
Сам пока подсел на Атмегу.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Мобильная версия