поиск:    

 
переход:  



Екатеринбург Онлайн
Форумы:  Операторы связи,   Модели телефонов,   Покупка-продажа телефонов,   Цифровое фото,   Обсуждение гаджетов,   Интернет

  Форумы  > Технологии > Радиолюбитель  

Декодер ШИМ на Atmel AVR


Список Тем  |   Поиск  |   Правила  |   Статистика  |
1 | 2 | 3 | 4 | 5 | следующая страницапоследняя страница
Декодер ШИМ на Atmel AVR   #22772  наверх
Автор: 
Дата:   

Делаю одну поделочку, хотел помощи попросить чтобы ненароком не изобрести велосипед.
Может у кого есть пример кода (желательно асм) как декодировать два-три одновременно поступающих ШИМ сигнала на контроллер?
В инете куча примеров как генерировать ШИМ, но не нашел ни одного как этот ШИМ распознавать.
В зависимости от сигнала контроллер будет выполнять несколько действий.

это для RC машинки.

[Сообщение изменено пользователем 22.04.2011 19:35]
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22773  наверх
Автор: dmq 
Дата:   

Ага, тут все знают алгоритм именно вашей радиоуправляемой машинки.
МК может только с помощью АЦП или логических уровней получать данные ну а дальше уже дело программиста что с этим делать...
0/3 |    |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22779  наверх
Автор: 0хCB
Дата:   

шим с приемника идет, после «декодера» импульсы с длительностью от 800 до 1500мкс и периодом 20мс? или напрямую?
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22781  наверх
Автор: 0хCB
Дата:   

нда, глянул тиньку 13-ю. там один 8-ми разрядный таймер, фронты ловить придется считывая значения таймера влет по прерыванию int0.
в меге16 тоже самое изящно реализуется через захват фронтов на таймере1 - тупо втыкаешь ppcm сигнал в icp0/1 пускаешь таймер и сидишь считываешь данные с регистров по прерываниям.
хотя у тини есть прерывание по смене состояния линий. Варианты алгоритмов:

Таймер 0 - нормальный режим (счет от 0 до 255), по переполнению в прерывании инкрементируем переменную TimeH

1. вариант выхода с декодера шим подцеплены к разным ногам тиньки - импульсы разведены по каналам, в этом случае:
ловим прерывания по изменению состояния линий PCIE (Pin Change Interrupt Enable).
алгоритм обработчика прерывания:
1) считываем влет таймер0 и TimeH: Time1=TimeH.TCNT0
2) расчитываем длительность импульса:
T=Time1-Time0
если T<0, то T=-T;
3) сохраняем длительность импульса T в буф. каналов (номер канала определяется кодом EXCODE)
4) Time0=Time1;
5) EXCODE=PINB&(маска каналов)
6) выход

2. вариант выхода на прямую с приемника - все импульсы в одном проводе, воткнуты в int в этом случае:
ловим прерывания по фронту(или спаду, хз чего на декодер приходит) на INT0 External Interrupt Request 0.
алгоритм обработчика прерывания:
1) считываем влет таймер0 и TimeH: Time1=TimeH.TCNT0
2) расчитываем длительность импульса:
T=Time1-Time0
если T<0, то T=-T;
3) если T>2000мкс (обнаружена пауза - конец передачи)
то: номер канала=0
иначе: сохраняем T в буф. каналов, номер канала++
4) Time0=Time1;
6) выход

в итоге в массиве каналов получаем длительности импульсов с ценой мл. разряда = тактовому периоду таймера 0.

примечание: период ppm сигнала (20мс) должен полностью укладываться в 256*(2^[разрядность TimeH]), иначе длительности импульсов могут считаться с ошибкой.

ps вариант 1 делал на меге16 через захват фронтов/спадов на пине icp*, только при этом дополнительно каналы пришлось цеплять через диоды по монтажному или к icp*

[Сообщение изменено пользователем 20.04.2011 12:45]
1/0 |    |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22801  наверх
Автор: timsa™
Дата:   

спасибо.
это я почитаю повникаю...

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

если тинька такая унылая, то не проблема переиграть на более другой... ту же мегу 16
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22804  наверх
Автор: 0хCB
Дата:   

таймера в любом случае одного хватит.
а тинька не то что бы унылее меги, у нее таймера нормального нету просто, но + в том что есть прерывание по смене состояния пинов, чего у меги нету. вобщем везде +/- есть
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22806  наверх
Автор: ITihonov   (О пользователе)
Дата:   

Про это есть аппнот AVR135 atmel.com/dyn/resources/prod_documents/doc8014.pdf

И код к нему: http://www.atmel.com/dyn/resources/prod_documents/...
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22809  наверх
Автор: 0хCB
Дата:   


Цитата:
От пользователя: ITihonov

Про это есть аппнот AVR135

ага. вот был бы на тиньке еще Timer Capture Unit цены б ему не было :-D
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22811  наверх
Автор: timsa™
Дата:   

а можно ШИМ завести через RC цепочку на АЦП и тупо мерить напряжение?
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22812  наверх
Автор: ddd[гость]   (О пользователе)
Дата:   

Можно. Но это пошло.
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22813  наверх
Автор: 0хCB
Дата:   

можно, тока но нафига? + период ппм не факт что постоянен, плыть будет
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22814  наверх
Автор: timsa™
Дата:   

в моей задаче период постоянен - 50 герц.
длительность импульса меняется от 10 до 20мс
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22815  наверх
Автор: ddd[гость]   (О пользователе)
Дата:   


Цитата:
От пользователя: timsa™

в моей задаче период постоянен - 50 герц.

Дыть тогда можно тупо длительность щетать таймером.
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22816  наверх
Автор: 0хCB
Дата:   


Цитата:
От пользователя: timsa™

в моей задаче период постоянен - 50 герц.
длительность импульса меняется от 10 до 20мс

эт как, один канал шо ли?
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22818  наверх
Автор: ITihonov   (О пользователе)
Дата:   


Цитата:
От пользователя: FGV

ага. вот был бы на тиньке еще Timer Capture Unit цены б ему не было :-D


дык среди tiny дофига с Input Capture. хотя я ушел на PIC и STM32. :-)
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22819  наверх
Автор: 0хCB
Дата:   


Цитата:
От пользователя: ITihonov

дык среди tiny дофига с Input Capture.

хз. на 8-ми ногих типа 1х нет ни на одной :-D
да и вобще у тинек есть тока у одной: ATtiny2313, у которой 16ти битный таймер имеется

[Сообщение изменено пользователем 20.04.2011 22:22]
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22820  наверх
Автор: Мoзгoпрaв и мoзгoвeд© 
Дата:   


Цитата:
От пользователя: ITihonov

хотя я ушел на PIC и STM32.

А STM8 щупали?
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22826  наверх
Автор: timsa™
Дата:   


Цитата:
От пользователя: FGV

ATtiny2313

о! у меня как раз такая валяется :-)



Цитата:
От пользователя: FGV

эт как, один канал шо ли?

да.
задача то простейшая, вот только я с института с контроллерами дела не имел
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22827  наверх
Автор: 0хCB
Дата:   

бррррр.
чего то не понимаю видимо. канал один, а провода нафига три тогда?
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22830  наверх
Автор: mainroot   (О пользователе)
Дата:   


Цитата:
От пользователя: FGV

бррррр.
чего то не понимаю видимо. канал один, а провода нафига три тогда?

:-D петание, граунд, сигнал :lol:


Цитата:
От пользователя: timsa™

если тинька такая унылая, то не проблема переиграть на более другой... ту же мегу 16

если про AVR...
то зачем

Цитата:
От пользователя: timsa™

(желательно асм)

?

avr-gcc, Си. намного понятнее, по-моему... чем писать на асме...
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22831  наверх
Автор: ITihonov   (О пользователе)
Дата:   


Цитата:
От пользователя: FGV

хз. на 8-ми ногих типа 1х нет ни на одной :-D
да и вобще у тинек есть тока у одной: ATtiny2313, у которой 16ти битный таймер имеется


да нифига, он есть у:

ATtiny2313
ATtiny24
ATtiny44
ATtiny84
ATtiny261
ATtiny461
ATtiny861
ATtiny48
ATtiny88
ATtiny24A
ATtiny44A
ATtiny10
ATtiny4
ATtiny5
ATtiny9
ATtiny261A
ATtiny461A
ATtiny861A
ATtiny2313A
ATtiny4313
ATtiny167
ATtiny87
ATtiny20
ATtiny40
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22832  наверх
Автор: ITihonov   (О пользователе)
Дата:   


Цитата:
От пользователя: Мозгоправ и мозговед

А STM8 щупали?


нет, я вобще планировал не PIC16F делать, но случайно увидал даташит на STM32F102/103 и он я вам скажу, по встроенной переферии и цене гораздо больше устраивает. :-)

а если надо что-то мелкое, то мне нравится pic10f200. опять же - ценой.

от avr стало подташнивать после сношания с usb в atmega32u4. даташит - полный шит. ну и с перефереией там херня какая-то, например долбанутое ограничение на конфигурацию мультиплексора в дифференциальном режиме с усилителем.

[Сообщение изменено пользователем 21.04.2011 01:22]
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22833  наверх
Автор: 0хCB
Дата:   


Цитата:
От пользователя: ITihonov

да нифига, он есть у:
....


ого, сколько их развелось :-)
тока у тини 10 icp помоему всетаки нету
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22834  наверх
Автор: 0хCB
Дата:   


Цитата:
От пользователя: mainroot

петание, граунд, сигнал


ага, это все три шим модулированых сигнала? :-)
вобщем пока неясно чего треба и на чем хотят ваять толи тиня13 толи 2313...
  |  Поделиться:  
Re: Декодер ШИМ на Atmel Tiny13   #22835  наверх
Автор: timsa™
Дата:   


Цитата:
От пользователя: FGV

чего то не понимаю видимо. канал один, а провода нафига три тогда?

три канала.
газ, руль, коробка скоростей
но идут каждый по своему отдельному проводку.


Цитата:
От пользователя: mainroot

avr-gcc, Си. намного понятнее, по-моему... чем писать на асме...

просто я не пробовал работать с прерываниями на С.
щас как раз изучаю этот момент. может действительно будет проще.



Цитата:
От пользователя: FGV

2313

эта есть в наличии


Цитата:
От пользователя: FGV

тиня13

эту можно купить

отлаживать вообще планирую на mega16 - есть на демо плате
  |  Поделиться:  
Список Тем  |   Поиск  |   Правила  |   Статистика  |
1 | 2 | 3 | 4 | 5 | следующая страницапоследняя страница

Внимание! сейчас Вы не авторизованы и не можете подавать сообщения как зарегистрированный пользователь. Чтобы авторизоваться, нажмите на эту ссылку (после авторизации вы вернетесь на эту же страницу)


 Мой E1 
 
Вход для зарегистрированных пользователей:
E-mail:
Пароль:
Если Вы не зарегистрированы, то добро пожаловать на страницу регистрации.
Если Вы зарегистрированы, но забыли пароль, Вы можете его запросить.

Развернуть блок
 Погода