Четверг, 28.03.2024, 23:20
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Пропорциональное управление на МК с нуля - Страница 29 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: ВитГо  
Форум » Разработка электронных устройств » Разрабатываю ! » Пропорциональное управление на МК с нуля (пошаговое строительство пропорционального управления с нуля)
Пропорциональное управление на МК с нуля
uwrteyДата: Воскресенье, 07.07.2013, 09:52 | Сообщение # 421
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
о-о, я придумал:
я поменял местами длительности при старте и при входе в прерывание - так можно будет проверить правильно ли генерится прерывание.. Вечером перепрошью и проверю .....

Хотя, я уже проверял длительность


ldi xh, 0xF ; 4000 = FA0 крайнее положение сервопривода... ( 2 милисекунды )
ldi xl, 0xA0

OUT OCR1BH,XH ; зададим длину импульса ( среднее положение )
OUT OCR1BL,XL ; и выведем ее в порт сравнения

нормально генерируется....
Но сервопривод занимает не совсем крайнее положение - он смещается всего на 70 градусов от центрального.
При чем этот сервопривод может смещаться на больший, чем 90 градусов, угол от центрального положения
( другими словами - ход этого сервопривода больше чем 180 градусов, примерно 225 градусов )
Прикрепления: 1_001.asm (6.6 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 07.07.2013, 09:53
 
ВитГоДата: Воскресенье, 07.07.2013, 18:30 | Сообщение # 422
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата (uwrtey)
Но сервопривод занимает не совсем крайнее положение - он смещается всего на 70 градусов от центрального.
При чем этот сервопривод может смещаться на больший, чем 90 градусов, угол от центрального положения
( другими словами - ход этого сервопривода больше чем 180 градусов, примерно 225 градусов )


гм.. ну вообще то для серв максимальный ход около 140-160 градусов !!!
большее это уже выход за границы диапазона управляющего импульса !!

так что если ты получишь управляемые 120 градусов - то это нормально и этого достаточно !
ни о каких 200 градусах речи быть не может !!!
у многих серв просто ограничители широко расставлены, чтобы при выходе импульса за пределы серва не смогла себе шестерни повредить (но это иногда все равно случается)


Виталий (аka ВитГо)
 
uwrteyДата: Вторник, 09.07.2013, 10:29 | Сообщение # 423
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
а-а, вот оно как. surprised
теперь с этим все понятно...

_____________

Попробовал код, который привел сообщением выше.
При старте серва занимает крайнее положение, а вот в прерывании она почему то не переключается на центральное положение...
( это значит, что длительность в две миллисекунды генерируется правильно )
Что-то я тут совсем жутко туплю - у меня даже подозрений нет ни каких...
*****
1) шим вроде правильно генерируется
2) в прерывание вроде попадаю
wacko ни чего не понимаю

меня еще смущает одна странность
когда на ножке ICP появляется лог_1 - сервопривод отклоняется на угол в три щелчка ( в градусах я не могу определить этот угол, наверно один градус или три ..... )
а когда лог_1 пропадает и ножка ICP просто повисает в воздухе или на ней появляется лог_0, то серва занимает исходную позицию....

Добавлено (09.07.2013, 10:29)
---------------------------------------------
поднял тему тут http://forum.easyelectronics.ru/viewtop....p276082


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 08.07.2013, 01:35
 
ВитГоДата: Вторник, 09.07.2013, 18:49 | Сообщение # 424
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
нужно посмотреть осциллограммы.
ты просто не верно генеришь импульсы

я неоднократно генерил управляющие импульсы для серв и никогда никаких проблем небыло

покажи осциллограммы!!!


Виталий (аka ВитГо)
 
uwrteyДата: Вторник, 09.07.2013, 22:16 | Сообщение # 425
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
сначала генерятся импульсы 1,5 мс затем входим в прерывание и снова генерятся импульсы длительностью 1,5 мс
ничего не понимаю... может шим надо как-то перезапустить ?
датащит на тини 2313

Почему то в прерывании не происходит переключение длительности импульса.

***

Или программа не входит в обработчик прерывания - хотя, выше я приводил программу 2_000.asm - которая работает исправно.
В той программе при старте не задается длительность импульса, но она задается в обработчике прерывания. А это значит , что программа в обработчик прерывания все-таки попадает!
Прикрепления: 9486446.gif (21.8 Kb) · 1_000.txt (6.6 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Вторник, 09.07.2013, 22:40
 
ВитГоДата: Четверг, 11.07.2013, 16:49 | Сообщение # 426
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
странно !
шим это аппаратная фича...

гм... у дихалта пробовал спросить на форуме?


Виталий (аka ВитГо)
 
uwrteyДата: Четверг, 11.07.2013, 20:49 | Сообщение # 427
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
спросил, но там молчат...
http://forum.easyelectronics.ru/viewtop....p276082

Добавлено (11.07.2013, 20:49)
---------------------------------------------
я вот что думаю, нужно попробовать другое прерывание организовать - например по int0
и посмотреть что будет....


не успеваю за своими мыслями......
 
ВитГоДата: Суббота, 13.07.2013, 16:55 | Сообщение # 428
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
не знаю. попробуй

может отказаться от шим и формировать вручную ?


Виталий (аka ВитГо)
 
uwrteyДата: Суббота, 13.07.2013, 23:50 | Сообщение # 429
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
переделал прерывание на int_0. И программа сразу же заработала как надо. Но УВЫ раз на раз не приходится ( то работает, то нет )

я ничего не понимаю, cry почему не работает ???

надо еще попробовать шим с вершиной в ICR1 соорудить.
Прикрепления: 1_002.txt (7.0 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Суббота, 13.07.2013, 23:53
 
ВитГоДата: Воскресенье, 14.07.2013, 07:42 | Сообщение # 430
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
значит проблема в коде

проверь правильно ли задал вершину стека

выходишь ли из прерываний по reti

и так далее..


Виталий (аka ВитГо)
 
uwrteyДата: Воскресенье, 14.07.2013, 12:27 | Сообщение # 431
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Точно! нашел косяк. при входе в прерывание я забыл сохранить стек. а при выходе я умудряюсь прочитать его значение.....
исправил и прикрепил...

___________________________________________________________________________

прикрепленный рисунок не имеет отношения к этой теме.
Прикрепления: 1355060.jpg (156.0 Kb) · 4535341.txt (7.2 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 14.07.2013, 14:00
 
uwrteyДата: Воскресенье, 14.07.2013, 23:59 | Сообщение # 432
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Ну вот, исправил и все заработало. smile
Блин, я до сих пор совершаю такие элементарные ошибки ...
Прикрепления: 0027993.txt (6.8 Kb)


не успеваю за своими мыслями......
 
ВитГоДата: Понедельник, 15.07.2013, 20:50 | Сообщение # 433
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
привыкнешь, начнешь совершать не элементарные и уже их находить будет на много сложнее biggrin biggrin biggrin

Виталий (аka ВитГо)
 
uwrteyДата: Понедельник, 15.07.2013, 23:58 | Сообщение # 434
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
подключил передатчик к приемнику и соорудил такой код, что бы можно было управлять только сервоприводом.
При включении приемника серва занимает среднее положение, а затем положение должно зависеть от положения ручки на пульте....
Но при включении передатчика серва ни куда не поворачивает свою качалку, а так и остается в среднем положении. А качалка в свою очередь начинает легко поворачиваться от руки...
Что это может значить ?
длина импульса вышла за пределы ?? как бы это проверить ??? вешать дисплей ?


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 15.07.2013, 23:59
 
ВитГоДата: Вторник, 16.07.2013, 06:36 | Сообщение # 435
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
да, если серва не удерживает свое положение значит с управляющим импульсом что то не то

экран конечно нужно подключать ! это единственный способ видеть хоть какую то отладочную инфу!!


Виталий (аka ВитГо)
 
Форум » Разработка электронных устройств » Разрабатываю ! » Пропорциональное управление на МК с нуля (пошаговое строительство пропорционального управления с нуля)
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz