Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 27.03.2013, 20:21  
AsSoul
Частый гость
 
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AsSoul на пути к лучшему
По умолчанию 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.
AsSoul вне форума  
Непрочитано 27.03.2013, 20:56  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

AsSoul, простейший вариант я уже привел - отправляет один байт десятибитного результата измерения, деленного на 4 (сдвиг на два бита). Для передачи 2-х баитов нужно объявить переменную int, которой присвоить значение функции чтения АЦП. Функции передачи сначала отдать сдвинутое на 8 бит вправо значение, затем само значение (putchar(char) берет младший байт от int).
" В идеале нужно, чтобы все это происходило по прерыванию." - По какому - внешнему или от таймера?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 27.03.2013, 21:07  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

AsSoul, еще раз перечитал задание, скорее всего (раз задана периодичность передачи) прерывания от таймера. Нужно выбрать таймер (для начала проще 8-ми битный), выбрать источник тактирования (точнее, предделитель). В визарде разрешить соответствующее прерывание (можно по переполнению, можно по сравнению - зависит от конкретных значений периодичности, предделителя, необходимой точности интервала) -будет сгенерирована "рыба" обработчика прерывания. Необходимые действия перенести из main() в обработчик прерывания.
Если есть вопросы - жду.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 27.03.2013, 21:13  
Арктур
Почётный гражданин KAZUS.RU
 
Аватар для Арктур
 
Регистрация: 29.10.2012
Сообщений: 3,015
Сказал спасибо: 7
Сказали Спасибо 3,494 раз(а) в 1,783 сообщении(ях)
Арктур на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

До частоты процессора в настройках симулятора ещё не добрались?

Нажмите на изображение для увеличения
Название: 5.PNG
Просмотров: 148
Размер:	19.4 Кб
ID:	45219

Последний раз редактировалось Арктур; 27.03.2013 в 21:46.
Арктур вне форума  
Непрочитано 27.03.2013, 21:41  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

AsSoul, Первая задача - поставить чёткое ТЗ.
Для этого надо ответить (в первую очередь себе), желательно на бумаге, на несколько вопросов:
- Желаемая разрядность АЦП;
- Периодичность передачи;
- нужен ли контроль целостности данных;
- Нужен ли ответ хоста;

Причём не диапазонами, а точным значением.

После этого составляется алгоритм работы устройства с учётом особенностей применённого МК.
Допустим в Меге8 есть Free Running Mode работы АЦП, то есть запустили и забыли. На выходе всегда актуальные данные независимо от периода передачи. Годится для восьмибитных измерений.

Давайте начнём с ТЗ, а дальше проще будет.
omercury вне форума  
Непрочитано 27.03.2013, 21:50  
AsSoul
Частый гость
 
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AsSoul на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

Сообщение от omercury Посмотреть сообщение
AsSoul, Первая задача - поставить чёткое ТЗ.
Для этого надо ответить (в первую очередь себе), желательно на бумаге, на несколько вопросов:
- Желаемая разрядность АЦП;
- Периодичность передачи;
- нужен ли контроль целостности данных;
- Нужен ли ответ хоста;

Причём не диапазонами, а точным значением.

После этого составляется алгоритм работы устройства с учётом особенностей применённого МК.
Допустим в Меге8 есть Free Running Mode работы АЦП, то есть запустили и забыли. На выходе всегда актуальные данные независимо от периода передачи. Годится для восьмибитных измерений.

Давайте начнём с ТЗ, а дальше проще будет.
Спасибо за помощь!)

ТЗ:

-8-ми разрядный АЦП
-периодичность передачи преподаватель не сказал (сказал только что данные нужны постоянно) - поэтому, я думаю, Free Running Mode должен подойти
-да, контроль целостности нужен
-извините за дремучесть: а что значит ответ хоста?)
AsSoul вне форума  
Непрочитано 27.03.2013, 21:52  
AsSoul
Частый гость
 
Регистрация: 27.03.2013
Сообщений: 45
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AsSoul на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

Сообщение от Арктур Посмотреть сообщение
До частоты процессора в настройках симулятора ещё не добрались?

Вложение 45219
Опаа.. Нет. Не добралась. А на что это повлияет? Т.е. там надо выставить 16?
AsSoul вне форума  
Непрочитано 27.03.2013, 21:56  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

Кто-то должен быть главным в этой системе - вот он-то и есть хост.
Или просто передаём что есть в "белый свет"?

Сообщение от AsSoul Посмотреть сообщение
-да, контроль целостности нужен
Значит придётся придумать алгоритм контроля, скажем исключающее или с константой и передача последовательно того, что намерили и контрольного байта. На стороне приёмника нужно проделать ту же операцию и сравнить с контрольным байтом.
Справитесь?

Сообщение от AsSoul Посмотреть сообщение
Т.е. там надо выставить 16?
Угу. Это повлияет на настройки скорости UART.
omercury вне форума  
Непрочитано 27.03.2013, 21:57  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

Код, который на радиокоте проверили?
oleg110592 вне форума  
Непрочитано 27.03.2013, 21:58  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: АЦП на Атмега8 и УАРТ - помогите

omercury, мне кажется, Вы уводите человека в сторону. Она меня уже один раз ткнула носом в первый пост, где достаточно сказано о техзадании, а если учесть что ТС - студент, то ни о каких наворотах типа хоста речи быть не может - простая учебная задача для познания основ. И "Free Running Mode" здесь ни к чему, достаточно один раз в 10...100 ms производить измерения.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 

Закладки

Метки
атмега8, ацп, уарт
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с АЦП putmannn Электроника - это просто 5 19.09.2011 20:43
Несчастный УАРТ jakuchma Микроконтроллеры, АЦП, память и т.д 52 10.02.2011 17:36
Кто по дзс1768 поможет? уарт не пашет индюк Микроконтроллеры, АЦП, память и т.д 0 14.01.2011 02:31
[Решено] Помогите опознать АЦП ? sh2cer Информация по радиокомпонентам 2 08.12.2009 17:12
Proteus 7.1sp4 и АТмега8 ARM7TDMI Микроконтроллеры, АЦП, память и т.д 1 26.03.2008 16:52


Часовой пояс GMT +4, время: 00:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot