AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
27.03.2013, 20:21
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от akegor
|
AsSoul, "У меня почему-то в терминальнике выдает значения (при изменении сопротивления резистора от мин до макс) - от 120 до 140, а должен бы от 0 до 255. Как же тогда это исправить, если не два байта отправлять?!(" - Поконкретней можно исходное задание? Отправлять нужно 0...255 или 0...1023, в бинарном или ASCII, в десятичном или hex виде? Честно говоря, не хочется вникать в "120...140". Так, как я написал - будет выводить в терминал один байт (бинарный).
|
Исходное задание такое:
Есть МК атмега8 (16 МГц), к РС2 подключен потенциометр (переменный резистор на 10 кОм), необходимо инициировать внутр АЦП микроконтроллера провести преобразование и отправить результат в ком порт(для этого используем УАРТ скорость 9600 бод). Результаты должны пересылаться постоянно с некоторой задержкой (10-100 мс). В идеале нужно, чтобы все это происходило по прерыванию.
отправлять можно в десятичном формате, можно в бинарном - это не принципиально. но лучше в бинарном.))) (120...140 - это от 01111000 до 10001100)
Как-то так)
Последний раз редактировалось AsSoul; 27.03.2013 в 20:23.
|
|
|
|
27.03.2013, 20:56
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
AsSoul, простейший вариант я уже привел - отправляет один байт десятибитного результата измерения, деленного на 4 (сдвиг на два бита). Для передачи 2-х баитов нужно объявить переменную int, которой присвоить значение функции чтения АЦП. Функции передачи сначала отдать сдвинутое на 8 бит вправо значение, затем само значение (putchar(char) берет младший байт от int).
" В идеале нужно, чтобы все это происходило по прерыванию." - По какому - внешнему или от таймера?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
27.03.2013, 21:07
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
AsSoul, еще раз перечитал задание, скорее всего (раз задана периодичность передачи) прерывания от таймера. Нужно выбрать таймер (для начала проще 8-ми битный), выбрать источник тактирования (точнее, предделитель). В визарде разрешить соответствующее прерывание (можно по переполнению, можно по сравнению - зависит от конкретных значений периодичности, предделителя, необходимой точности интервала) -будет сгенерирована "рыба" обработчика прерывания. Необходимые действия перенести из main() в обработчик прерывания.
Если есть вопросы - жду.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
27.03.2013, 21:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2012
Сообщений: 3,015
Сказал спасибо: 7
Сказали Спасибо 3,494 раз(а) в 1,783 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
До частоты процессора в настройках симулятора ещё не добрались?
Последний раз редактировалось Арктур; 27.03.2013 в 21:46.
|
|
|
|
27.03.2013, 21:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
AsSoul, Первая задача - поставить чёткое ТЗ.
Для этого надо ответить (в первую очередь себе), желательно на бумаге, на несколько вопросов:
- Желаемая разрядность АЦП;
- Периодичность передачи;
- нужен ли контроль целостности данных;
- Нужен ли ответ хоста;
Причём не диапазонами, а точным значением.
После этого составляется алгоритм работы устройства с учётом особенностей применённого МК.
Допустим в Меге8 есть Free Running Mode работы АЦП, то есть запустили и забыли. На выходе всегда актуальные данные независимо от периода передачи. Годится для восьмибитных измерений.
Давайте начнём с ТЗ, а дальше проще будет.
|
|
|
|
27.03.2013, 21:50
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от omercury
|
AsSoul, Первая задача - поставить чёткое ТЗ.
Для этого надо ответить (в первую очередь себе), желательно на бумаге, на несколько вопросов:
- Желаемая разрядность АЦП;
- Периодичность передачи;
- нужен ли контроль целостности данных;
- Нужен ли ответ хоста;
Причём не диапазонами, а точным значением.
После этого составляется алгоритм работы устройства с учётом особенностей применённого МК.
Допустим в Меге8 есть Free Running Mode работы АЦП, то есть запустили и забыли. На выходе всегда актуальные данные независимо от периода передачи. Годится для восьмибитных измерений.
Давайте начнём с ТЗ, а дальше проще будет.
|
Спасибо за помощь!)
ТЗ:
-8-ми разрядный АЦП
-периодичность передачи преподаватель не сказал (сказал только что данные нужны постоянно) - поэтому, я думаю, Free Running Mode должен подойти
-да, контроль целостности нужен
-извините за дремучесть: а что значит ответ хоста?)
|
|
|
|
27.03.2013, 21:52
|
|
Частый гость
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Сообщение от Арктур
|
До частоты процессора в настройках симулятора ещё не добрались?
Вложение 45219
|
Опаа.. Нет. Не добралась. А на что это повлияет? Т.е. там надо выставить 16?
|
|
|
|
27.03.2013, 21:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Кто-то должен быть главным в этой системе - вот он-то и есть хост.
Или просто передаём что есть в "белый свет"?
Сообщение от AsSoul
|
-да, контроль целостности нужен
|
Значит придётся придумать алгоритм контроля, скажем исключающее или с константой и передача последовательно того, что намерили и контрольного байта. На стороне приёмника нужно проделать ту же операцию и сравнить с контрольным байтом.
Справитесь?
Сообщение от AsSoul
|
Т.е. там надо выставить 16?
|
Угу. Это повлияет на настройки скорости UART.
|
|
|
|
27.03.2013, 21:57
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
Код, который на радиокоте проверили?
|
|
|
|
27.03.2013, 21:58
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: АЦП на Атмега8 и УАРТ - помогите
omercury, мне кажется, Вы уводите человека в сторону. Она меня уже один раз ткнула носом в первый пост, где достаточно сказано о техзадании, а если учесть что ТС - студент, то ни о каких наворотах типа хоста речи быть не может - простая учебная задача для познания основ. И "Free Running Mode" здесь ни к чему, достаточно один раз в 10...100 ms производить измерения.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:27.
|
|