АЦП в Tiny2313

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

АЦП в Tiny2313

Сообщение Maycal » 28 ноя 2009, 23:32

Здравствуйте уважаемые программисты. Недавно начал заниматься электроникой и в частности микропроцессорами. Стоит такая задача: нужно сделать робота-охотника за светом (типичная задача для новичков). Стоят два фототранзистора, и нужно что бы с них считывались показания, сравнивались друг с другом и запускался двигатель постоянного тока вправо или влево "охотясь за светом".
Как считать уровень сигнала с фототранзисторов? С помощью АЦП? Так вот это то и не получается. В CodeVisionAVR для Tiny2313 при создания автокода вообще нет вкладки ADC, а если делать для другова MK - при прошивании не работает. Хотя в описании МК написанно что там есть встроенный ЦАП и АЦПю Немогли бы вы подсказать простую литературу, или же набросать тут код для CodeVisionAVR?. Нужно именно для него! Заранее спасибо!
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение avr123.nm.ru » 28 ноя 2009, 23:42

Читайте даташит - там ПРАВИЛЬНО написано. Достаточно посмотреть обложку.

Измерить напряжение можно и без встоеного АЦП - эммитер фототранзистора соединяете резистором 150-470 Ом с ножкой-входом прерывания AVR и еще эммитер соединяете с землей резистором 10-20 кОм и параллельно конденсатором 10 нФ например. Теперь делаете на ножке "выход" и "0" - затем включаете таймер и делаете ножку "входом" без подтяжки, замеряете время заряда конденсатора до "1" т.е. до момента срабатывания прерывания "по фронту сигнала" ( прерывания в микроконтроллере AVR - http://avr123.nm.ru/03.htm ) - чем быстрей тем больше освещение фототранзистора.

но ИМХО удобней новичку использовать ATmega8 с АЦП например по 48 рублей.

Добавлено спустя 2 минуты 7 секунд:
Maycal писал(а): В CodeVisionAVR для Tiny2313 при создания автокода вообще нет вкладки ADC


ВЫВОД ??? не ясен ?

Доверяйте CVAVR и avr123 - они плохого не посоветуют ! :ROFL:
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: АЦП в Tiny2313

Сообщение Maycal » 28 ноя 2009, 23:56

ТЕ в Tiny 2313 нет АЦП?
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение avr123.nm.ru » 28 ноя 2009, 23:57

ОЧЕВИДНО нет. Когда есть - то есть и в мастере CVAVR и на обложке даташита.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: АЦП в Tiny2313

Сообщение galex1981 » 29 ноя 2009, 00:04

Там даже нет аппаратного SPI ;)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: АЦП в Tiny2313

Сообщение Duhas » 29 ноя 2009, 00:08

:shock:
там просто ТВИ и СПИ в 1 модуль сшиты...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: АЦП в Tiny2313

Сообщение Angel71 » 29 ноя 2009, 00:15

Maycal, изучайте внимательней датишиты. на атмеловские чипы их можно скачать, например тут http://atmel.com
по контроллерам еще могу посоветовать почаще заглядывать на сайты подобные этому http://electronix.ru/forum/index.php?showforum=10
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: АЦП в Tiny2313

Сообщение Maycal » 29 ноя 2009, 12:17

Скажите пожалуйста, EXT_INT0 это прерывание по фронту или ниспаду?
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение Duhas » 29 ноя 2009, 12:22

по идее - как настроите...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: АЦП в Tiny2313

Сообщение Maycal » 29 ноя 2009, 12:53

В генераторе начального кода много параметров, есть Low level, а конктретно High Level нет. Какой выбирать для моей задачи из всех?
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение Duhas » 29 ноя 2009, 12:56

а какая у вас задача ? ) вообще прерывания 0 и 1 настраиваются на спад/фронт/низкий уровень... выбирайте и пользуйтесь..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: АЦП в Tiny2313

Сообщение Maycal » 29 ноя 2009, 13:01

И еще такой вопрос, где в начальном генераторе указать порт, который будет реагировать на прерывание?

Добавлено спустя 3 минуты 44 секунды:
Мне нужно сделать прерывание на фронт. В генераторе для этой задачи на вкладке
External IRQ->INT0 Enabled-> какое выбрать из 4:
1) Low Level
2) Any Change
4) Falling Edge
5) Rising Edge
И как првязать это все к порту? Или оно будет на любой порт реагировать?
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение Duhas » 29 ноя 2009, 13:05

фронт - Rising Edge

выбирать порт не нужно ) он в ДШ написан.. PD2 для этой тиньки вроде...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: АЦП в Tiny2313

Сообщение Maycal » 29 ноя 2009, 13:27

Спасибо большое! Но есть еще один вопрос, скажи пожалуйсто, какой таймер использовать 0 или 1 или Watchdog для тако что бы посчитать время заряда конденсатора?

Добавлено спустя 15 минут 19 секунд:
Здесь еще одна проблема.
Я так понимаю прерывания работают след образом:
Сначало выполняется код в main. Если есть прерывания, включается обработчик прерываний, выполняется, когда прерывание прекращается, сново начинает выполняться main?
Но все дело в том, что почему то работает только прерывание. А main не работает. В main прописано зажигание светодиота, он не зажигается, а в обработчики прерывания зажигается. В чем же дело?
Maycal
 
Сообщения: 25
Зарегистрирован: 28 ноя 2009, 23:18
Откуда: Подольск

Re: АЦП в Tiny2313

Сообщение Grofus » 29 ноя 2009, 13:27

Ну откройте же вы даташит наконец.... :D Там написано что таймер 0 восьмиразрядный !!,Таймер 1 шестнадцатиразрядный, а ВачДог таймер специальный защитный его не поюзаеш :D :D Я так думаю что таймер 1 для этой задачи будет слишком жирным поэтому юзай таймер 0..

А если хочется точности в измерениях то сходи на http://easyelectronics.ru там был где то пример как из аналогового компаратора и шим сделать неплохой ацп.. Ну и курс там есть неплохой по контроллерам на асемблере :Yahoo!:
Алокоголизм - излечим, пьянство - нет.
Peace-death.
Аватара пользователя
Grofus
 
Сообщения: 104
Зарегистрирован: 25 июл 2009, 16:35
Откуда: Ессентуки
прог. языки: ASM , Lisp , C# :)
ФИО: Алексей

След.

Вернуться в Микроконтроллеры

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

Сейчас этот форум просматривают: Google [Bot] и гости: 18