Arduino DUE - немного вопросов
- Войдите на сайт для отправки комментариев
Ср, 19/06/2013 - 11:46
Добрый день. Подскажите, какие ноги у due работают на прерывания? И где то читал, что, вроде как в ней их можно переназначить - т.е. повесить прерывание на любую ногу?
Вопрос 2 - на каких ногах висят таймеры?
Вопрос 3 - можно ли на ноги вешать диоды без токоограничивающих резисторов? (Диодов 8шт. Максимум, по одному на ногу)
на каждую ногу можно назначит прерывание(зменение сигнала, задний/передний фронт и доп функции ног)
распиновка Due
резисторам быть
Спасибо, с этими вопросами разобрался. Дальше - веселее вопрос:
Как правильно организовать работу с драйвером ШД?
Т.е. драйвер работает по степ/дир. А вопрос - в скорости сигнала степ.
Надо:
1. Регулировать длительность этого сигнала (слишком короткий драйвер может и не увидеть) и регулировать скорость отправления сигналов (что бы получить нужную скорость вращения, разгон-торможение и т.д.)
Поскольку параллельно с этим могут выполняться и другие задачи - правильно ли я понимаю, что нужно все это выстраивать через прерывания таймера?
И если строить это все через таймеры, то вопрос такой - насколько быстро происходит включение/выключение прерываний в ардуине в принципе и таймеров в частности?
возьмите готовую бибилиотеку для шд
Какой смысл в библиотеке под эти задачи? Тут все, что надо - дергать двумя ножками, а библиотеки по моему для шилдов, на которые шим надо гнать
использование дуе что бы дергать 2 ножками тоже как то безсмыслено...
Ну помимо этого нужно слушать очень быстрый энкодер, эмулировать двигатели по матмодели, рулить другими двигателями и все это в режиме жесткого тайминга. Но так да - по итогу лишь дергать ножками. И как правильно деграть через таймеры с нужной частотой - я уже давно разобрался.
И еще - почти любой сложности проект в результате имеет как раз таки дергание ножками.
И еще - почти любой сложности проект в результате имеет как раз таки дергание ножками.
Ну так то да. если утрировать до такой степени, то вся жизнь сводится к тому что нужно перебирать ногами :)
столкнулся с забавной фигней кстати.. переделывал програмку которая раньше на меге бегала.. оказалось что Дуе опрашивает сенсоры быстрей чем они успевают обновится :) приходиться городить огород с задержками :)
Ну у меня все на прерываниях - поэтому скорость только в плюс
Как плату дуе подключить к планшету, какой кабель?
А зачем DUE, TMS320f28377 или 28027 есть по схожей цене специализированные для приводов с аппаратным чтением энкодеров и тп, лаунчпады.
Пробовал получить с DUE шим с разрешением 12 бит используя функцию analogWriteResolution(), но по факту на выходе все тот же 8 битный шим, т.е. ширина импульса изменяется с шагом 16 и имеет все те же 256 значений.
Можно ли получить с DUE ШИМ 12 бит, используя функцию analogWriteResolution() ?
Ведь, в описании к DUE сказано:
"Provide 8-bit PWM output with the analogWrite()function. the resolution of the PWM can be changed with the analogWriteResolution() function. "
Вроде бы есть возможность изменять разрешение ШИМ функцией analogWriteResolution. Об этом так же написано в описании к функции analogWriteResolution:
"The Due has the following hardare capabilities:
"-12 pins which default to 8-bit PWM, like the AVR-based boards. These can be changed to 12-bit resolution.
-By setting the write resolution to 12, you can use analogWrite() with values between 0 and 4095 to exploit the full DAC resolution or to set the PWM signal without rolling over. "
Ну и что при Вашем коде получается на пине 11?
А если заменить в 5-й строке "16" на "8"?
при значениях параметра от 0 до 15 на выходе "0".
16-31 - длинтельность имп. 4 мкс (1 кГц), при изменении параметра в диапазоне от 16 до 31 длительность импульса шим не изменяется.
32-47 - 8 мкс, 48-63 - 12 мкс. и т.д.
Т.е. длительность импульса шим прирастает с шагом примерно 4 мкс, что соответствует шиму с разрешением 8 бит.
пс: На плате, на впаян кварц для встроенного RTC, может ли это влиять на работу шим - я хз. (Кстати, если судить по фоткам алишным, на многих китайских DUE не впаян этот кварц.)
Кварц RTC - это 32768Hz?
Если так, то на работу данной ШИМ он повлиять не может никак.0
Странно это. Дойдут руки - посмотрю.
Продолжу.
Изменив в файле variant.h строки:
заменил на:
Получил шим 12 бит, 1 кГц, ширина импульса увеличивается с шагом примерно 0,2 мкс на каждое приращение параметра функции analogWrite().
Естественно, догадался не сам, а нашел на каком то форуме. Собственно, вопрос в том, кто может объяснить, что это за файл variant.h и на что могут повлиять изменения?