О сайте Группа в контакте RSS Годограф Volksturm Импульсные металлоискатели IB металлоискатели Пинпоинтеры Другие схемы Заказать Конструкции металлоискателей Полезные ссылки

Схемы металлоискателей MD4U

Сборка, настройка, обсуждение, теория и практика построения металлоискателей.
Текущее время: Пт: 19 апр 2024 3:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему
 [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Автоподстройка. Андрюха, выручай.
СообщениеДобавлено: Вт: 27 ноя 2007 17:53 
Не в сети

Зарегистрирован: Ср: 08 авг 2007 20:31
Сообщения: 1263
Решил сделать автоподстройку на ШИМ, на контроллере Аттини_13. На штатном ШИМе не удалось, т.к. мало разрядности (8). Начал расширять разрядность и делать програмный ШИМ. Прерывание по переполнению инкременирует переменную freq до 0х80, потом обнуление и установка вывода PORTB_Bit1. А второе прерывание по совпадению, не сбрасывая таймер0, сравнивает skwhi и freq, и если совпадают, то очищает PORTB_Bit1. После ШИМа стоит фильтр. На входе компаратор. Дык вот всё работает отлично, но в определённых местах сигнал скачет, что конечно же недопустимо. Где косяк в коде или что я сделал не так. Без оганичений (min max) младшего байта skwlo вобще сильно скачет. Вобщем 2 недели уже убито...

.. расширение .doc , но файл текстовый обычный.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
 


Вы можете отключить эти сообщения.
 Заголовок сообщения:
СообщениеДобавлено: Вт: 27 ноя 2007 18:49 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 20 ноя 2007 14:15
Сообщения: 205
Откуда: г. Киев
Выручим конечно...
С моего опыта во такие проблемы с программой самые не приятные и возникают в основном в так называемых крайних состояниях, или если совместное использование переменных несколькими процессами ( в твоем случае это мейн и прерывание). Сделай еще рисунок и описание, как ты планировал это делать и что за шим ты хочешь получить... Может сделаем по-другому.
Вот скажи что ты положишь в ОСР0 если прерывание произойдет между этими выражаениями skwhi --; skwlo = max; ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 27 ноя 2007 20:29 
Не в сети

Зарегистрирован: Ср: 08 авг 2007 20:31
Сообщения: 1263
В общем обычная автоподстройка. Только вместо интегратора с большими резисторами (5-20 мом) стоит ШИМ, а с его выхода фильтр. Если сигнал на выходе ШИМ меандр, но на выходе фильтра будет "0". Когда ШИМ-сигнал от меандра уходит в ту или другую сторону, сигнал на выходе фильтра тоже уходит вверх или вниз. А компаратор определяет в какую сторону ШИМ надо изменять (PINB_Bit3). Выход фильтра вводится на вход усилителя, а выход подключен к компаратору. Делал 8-разрядный, мало оказалось, дрыгания сигнала заменты, ставил ЦАП совецкий 10-разрядный, тоже мало. Надо начиная от 14 разрядов. Мегу нежелательно, задача мелкая.
Идея из ПР-507, но там логика, микрух раза в два больше чем в самом приемнике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 28 ноя 2007 12:53 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 20 ноя 2007 14:15
Сообщения: 205
Откуда: г. Киев
Вобщем проанализировал я твою программу. Смотри что получается...
Берем доку на ATtiny13, и находим описание таймера 0. Смотрим внимательно на Figure 31. Fast PWM Mode, Timing Diagram. Видим что регистр OCR0A по идее имет буфер и обновляется после того как произошло переполнение таймера (OCRnx Update and
TOVn Interrupt Flag Set). Т.е. судя из рисунка до переполнения таймера( 255 отсчетов) у тебя значение регистра OCR0A не поменяется, хоть пиши туда что хочешь. А теперь смотри за то время что ты ждешь переполнение у тебя в основной программе значение переменной skwlo может поменяется 20 раз. А ты будеш в OCR0A еще записывать старое значение skwlo, которое сохранено в буфере OCR0A. Т.е. у тебя будут "скачки" и соответственно не корректная работа при быстро изменяющихся сигналах. Вот пока такие размышления...
Т.е. что я тебе хочу сказать, что у тебя OCR0A будет обновляется по переполнению от таймера, а это значит, что по идее через 255 тиков таймера 0. У тебя система будет опаздывать с реакцией...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 28 ноя 2007 13:19 
Не в сети

Зарегистрирован: Ср: 08 авг 2007 20:31
Сообщения: 1263
переписал седня, в другом прерывании теперь OCR0A обновляется. Всё равно скачет. Вот на 8 разрядах отлично всё идёт, но мало. Ещё у меня не режим ШИМ, а обычный таймер. А там в Тиньке есть два ШИМа, а вот нельзя ли как-нить объединить что бы был один 16-разрядный, хотя бы и аппаратно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 28 ноя 2007 13:46 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 20 ноя 2007 14:15
Сообщения: 205
Откуда: г. Киев
ДА без разницы где обновлять ,я хотел сказать что он всеравно будет обновляться один раз за 255 тиков таймера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 28 ноя 2007 14:22 
Не в сети

Зарегистрирован: Ср: 08 авг 2007 20:31
Сообщения: 1263
Дык так и надо при быстрой настройке, а при медленной ещё реже (примерно два раза в секунду). Там у меня по переполнению каждый раз пин поднимается, а при совпадении опускается. Вот и весь ШИМ. Если записать 0х7F то получится меандр (по идее).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср: 28 ноя 2007 14:29 
Не в сети
Аватара пользователя

Зарегистрирован: Вт: 20 ноя 2007 14:15
Сообщения: 205
Откуда: г. Киев
Ты говоришь, когда было все 8-битное, то нормально. НУ так запрети прерывания когда у тебя обрабатываются крайние состояния. На лицо то что я тебе говорил по совместному использованию данных.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти: