Доброго времени суток Пишу в связке CodeVisionAVR + Proteus 7 программу для вентильного двигателя (он же BLDC). С датчиками Холла, с прерываниями, с даташитом avr492. В качестве контроллера выбрал Atmega8. Суть проблемы:Никак не получается приручить switch (да и порты, судя по всему). Если раскомментировать присваивание PORTD=PINC (и закомментировать switch), то привод вращается. Не так, как хотелось бы, но вращается. А через свитч - не получается. Привод стоит. Хотелось бы выяснить, в чем проблема и что я сделал не так. Код: Спойлер
switch (tmp) { case 0b00000101: PORTD=0b00000101; break; case 0b00000001: PORTD=0b00001001; break; case 0b00000011: PORTD=0b00011000; break; case 0b00000010: PORTD=0b00010010; break; case 0b00000110: PORTD=0b00100010; break; case 0b00000100: PORTD=0b00100001; break; }
#asm("sei") }
void main() {
port_init(); timer_init(); pwm_init(); #asm("sei") while (1) {}; }
2. Что приходит на PINC? Не может ли быть так, что там стоят и какие-то верхние биты, портящие сравнение? Попробуйте добавить в switch конструкцию default и посмотрите, срабатывает ли (н-р повесьте светодиод). Если срабатывает - непорядок со значением PINC.
Перед сравнением целесообразно очищать верхние биты - tmp=PINC & 0x07.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Да, вы оказались абсолютно правы - после добавления очистки верхних битов все заработало как надо. Мне осталось только добавить управление с кнопок - и готовый проект я выложу здесь (а ну как кому понадобится, как понадобилось мне?)
На будущее - если из порта что-то читается, ни в коем случае нельзя оставлять часть его пинов висящими в воздухе и настроенными на вход - из них может читаться мусор. Надо либо настроить их на выход, либо подтянуть (можно внутренним подтягивающим резистором) к известному потенциалу и учесть это. Вообще, если ножка настроена на вход, нельзя оставлять ее в воздухе - будут наводиться помехи, т.к. сопротивление входа МК очень велико. А из-за возможных частых переключений (или перехода в линейный режим) она еще и повышенный ток потреблять будет.
Цитата:
готовый проект я выложу здесь
Лучше запилите статью.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Ха, теперь еще вопрос со сменой направления вращения ротора.
Порядок переключения обмоток для вращения по часовой есть и в аппноуте, и даже на форуме лежит. http://www.gaw.ru/im/doc/micros/avr/avr443/avr443_pic2_2.gif А вот порядок вращения против часовой? Нашел только такой, http://electrosales.com/hurst/hurst_brushless_intro.html, но тут меня смущает, что изменяется порядок датчиков Холла и что он не работает (как ни печально). Правильно ли я понимаю, что для смены направления вращения нужно поменять направление тока во всех обмотках? Или это делается по-другому?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения