www.open-tager.ru
http://www.open-tager.ru/forum/

В погоне за аскетизмом (LTKhv)
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1845
Страница 13 из 16

Автор:  Pingvin [ 13 янв 2013, 21:52 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

Перепощу себя :)
Цитата:
Интересная мысль пришла по поводу того, как разрулить конфликт прерываний! ;)
А что, если мы в обработчике неглавного прерывании (в данном случае в прерывании таймера1) разрешим прерывания?
То есть в нормальной ситуации прерывания обрабатываются так - при возникновении определённого события выставляется соответствующий флаг в регистре прерываний, и контроллер обрабатывает эти флаги по очереди, в зависимости от приоритета.
Когда начинается обработка прерывания, все остальные прерывания запрещаются, и пока обработчик не выполнит свою работу, другие обработчики не запустятся.
И вот возникает ситуация - прерывание таймера1 работает, а пора уже формировать новый импульс на ИК-диоде, но этого не происходит, так как прерывание таймера1 ещё не выполнило весь код.
В несущей частоте образуется "провал", и TSOP это фиксирует - пакет забракован.
А теперь, если при обработке прерывания таймера1 мы принудительно разрешим остальные прерывания, то в момент, когда нужно будет сформировать очередной импульс для ИК диода, обработка прерывания таймера1 прекратитья, и выполнится обработчик прерывания, формируюшего несущую (то есть таймера2).
И тогда, по идее, срыва несущей не должно произойти!
Возможно, качество звука немного пострадает, но это же не критично! :)
Как думаете, сработает?
Кто нибудь баловался таким образом с прерываниями?

Вот и статейку нашел по теме
[url]http://roboforum.ru/wiki/AVR:Прерывания/Приоритетность[/url]
Прорвемся! ;) :)

Цитата:
Разобрался с прерываниями! :)
Только, помимо глобального разрешения прерываний не забывайте запрещать само прерывание , в обработчике которого вы это делаете (а перед выходом из обработчика снова разрешить), иначе обработчик улетает в такую рекурсию! :shock:


http://www.open-tag.ru/forum/viewtopic.php?f=15&t=176&p=2637&hilit=%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0+%D1%81+%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8#p2614
По этим "граблям" мы уже гуляли! :lol:

Автор:  Pingvin [ 13 янв 2013, 22:07 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

Цитата:
Приём 22.12.2012 12:47 Китай 200949
Экспорт 22.12.2012 22:58 Китай CNSHAA


Заказал 22, сегодня уже 14 - за 3 недели посылка с места не сдвидулась! :(
Вот тебе и "никаких подвижек"!

Автор:  KEROL [ 13 янв 2013, 22:19 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

Вот и я хочу понять как надо реализовать прерывания от TSOP во время передачи пакета "выстрела" так, чтобы и прием полноценно осуществить и пакет передавался точно 2400/1200/600/600. Моя схема -это лишь мое видение этого дела....
Уверен, Пингвин знает, что говорит. И я разберусь в его идее рано или поздно...
ЗЫ: Именно этот вопрос (Прием прерываний от ТСОП во премя передачи) считаю для себя наиболее важным. И сложным в реализации. А звук (МП3-декодинг) и Bluetooth реализуются отдельными чипами и их работа полу-автономна. Поэтому я и выдумал мысль, мол, а не разделить ли передачу и прием на два разных чипа...
ЗЫЗЫ: Пингвин, не могу зайти по ссылке в Тему...

Автор:  Pingvin [ 13 янв 2013, 22:29 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

KEROL писал(а):
Вот и я хочу понять как надо реализовать прерывания от TSOP во время передачи пакета "выстрела" так, чтобы и прием полноценно осуществить и пакет передавался точно 2400/1200/600/600. Моя схема -это лишь мое видение этого дела....
Уверен, Пингвин знает, что говорит. И я разберусь в его идее рано или поздно...
ЗЫ: Именно этот вопрос (Прием прерываний от ТСОП во премя передачи) считаю для себя наиболее важным. И сложным в реализации. А звук (МП3-декодинг) и Bluetooth реализуются отдельными чипами и их работа полу-автономна. Поэтому я и выдумал мысль, мол, а не разделить ли передачу и прием на два разных чипа...
ЗЫЗЫ: Пингвин, не могу зайти по ссылке в Тему...

Да просто всё как сибирский валенок! :lol:
Все работает - не парьтесь! ;)
Писать долго...
Тогда уж на сайте описание сделаю.
ltascet.ru
В прерывании, которое главное и молотит с частотой = 2xf0 просто меняю состояние вывода, если надо передавать несущую, и просто выставляю 0, если пауза.
Я знаю, сколько "тиков" занимает 0 (600мкС*2f0=43 тика) и сколько 1 (1200*2*f0=85 тиков) и сколько старт бит (2400*2f0=173 тика).
Поэтому за каждый тик я уменьшаю счетчик оставшихся тиков на единицу, проверяю, если 0, то все, передаю паузу, затем из буфера передатчика достаю новое значение и присваиваю его счетчику оставшихся тиков и все сначала.
И так до признака конца строки в буфере передатчика.
Прием же пакета никак не мешает передаче, просто генерируются прерывания поочередно по спаду и по фронту импульса от TSOPа и так же проверяется, сколько тиков было между спадом и фронтом и на основании этого, с учетом допустимой погрешности делается вывод, "шо это було"!

Автор:  Pingvin [ 14 янв 2013, 07:05 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

А вообще "идеологически правильно" для генерации несущей использовать аппаратные возможности контроллера - ШИМ.
Но у меня ШИМ аппаратный отдан под звук, при использовании mp3 декодера лучше задействовать таймер в режиме ШИМ.
Неоспоримые плюсы:
- экономия драгоценных ресурсов контроллера.
- возможность легко менять скважность импульсов, тем самым регулирую "мощность" сигнала.
Из минусов только привязка к конкретному пину контроллера.

Автор:  KEROL [ 14 янв 2013, 17:55 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

Аппаратаный ШИМ безусловно предпочтителен. Особенно, если частота 56Кгц точная!))) И, если определюсь с прерываниями, то ШИМ только аппаратными средствами...

Автор:  mail_robot [ 15 янв 2013, 16:02 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

заказал PicKit2. Эксперименты на этом пока остановились. Жду весь в нетерпении
пока экспериментирую с зарядками для лития. Раздербанил пару блоков питания от компа, сделал блочок питания из дежурки на 5В 2А импульсный. Сегодня попробовал собрать схему синхронного выпрямителя на компараторе и двух полевиках по буржуйской схеме. Работает 8-)
только с фильтром непонятные проблемы.
Просто из интереса захотелось заменить на выходе выпрямительные диоды синхронным выпрямителем
использовал материалы отсюда http://www.rlocman.ru/shem/schematics.html?di=105520

короч дурью маюсь :lol:

спалил один irfz46 и lm393 (завтра куплю еще пачку) когда по нечайке в очередной раз на макетке переткнул переменку не туда, обжог палец и успокоился на этом. Но принципиально схема рабочая. Полупериоды красивее диодов вырисовывает на осциллографе. Все холодное под нагрузкой.
вместе с программатором идут контроллеры зарядки литиевых акумов 4 штуки. Придут, запаяю все вместе и сотворю балансный зарядник для 3-х элементов 3,7 вольта. Ато аккумов море, а вот с зарядками проблема. На 11.1 вольта балансные зарядки чет шибко дорого стоят
Схемку потом выложу как отлажу

Автор:  Pingvin [ 15 янв 2013, 17:13 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

mail_robot писал(а):
вместе с программатором идут контроллеры зарядки литиевых акумов 4 штуки.
Схемку потом выложу как отлажу

Так вот кто на chip-nn.ru все микрухи для зарадки лития выгреб!!! :evil: :twisted: :lol: :lol:
А у меня в охранке аккум заряжается контроллером через ШИМ, с контролем тока а напряжения.
Работает как часы!
Могу перенастроить для лития или фосфатника.
Вот уже думаю - не сварганить чего нибудь а-ля "imax", с ЖКИ, связью с ПК и прочими плюшками?
Только не знаю, как балансировка банок реализуется. :?

Автор:  mail_robot [ 15 янв 2013, 17:27 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

да, это я самый :lol:

балансиром очевидно. Схемы вроде есть. Там транзюков правда дохрена, но только на первый взгляд все страшно ))
а схемку зарядки было бы неплохо получить в почту ;)

Автор:  Pingvin [ 15 янв 2013, 18:33 ]
Заголовок сообщения:  Re: В погоне за аскетизмом (LTKhv)

mail_robot писал(а):
а схемку зарядки было бы неплохо получить в почту ;)

Да вот она, я же выкладывал

download/file.php?id=1347


Сразу скажу - транзистор слабоват, при 700 мА грелся. Дроссель надо под конкретную частоту рассчитывать.

Страница 13 из 16 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/