![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Всем доброе время суток!
Я пытаюсь на любом микроконтроллере PIC12 собрать обычный АЦП. Т.е. на вход AN0 подается синусоида, а на выходе хочу получить дискретное представление этой синусоиды. В интернете находил много примеров, но все выполняют другие преобразовании. Находил справочники в даташите, но пока в голове не укладывается как написать такой преобразователь Можно хотя бы какой-нибудь элементарный пример или ссылку, с помощью которой можно будет собрать. |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Вот тебе страница с примерами программ от производителя. Поищи, наверняка найдёшь, то , что тебе нужно.
-------------------- Мне нужны помощники. |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Ищите PIC с встроенным АЦП. АЦП из компаратора и ref'а вам вряд ли подойдет
![]() |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Вот уже как месяц ищу, а результата нет
|
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Уже и реально не знаю что делать.
В документации сказано что есть модуль АЦП и есть модуль компаратора. Я понимаю что эти отдельные модули. На примерах все время либо попадается постоянный ток, либо аналоговый, но с опорным напряжением. А вот так как у меня на картинке даже и не встречал в примерах. Пытался разобрать пример, который подставляется с эмулятором протеус, там тоже работает компаратор Это сообщение отредактировал(а) BIV - 3.10.2011, 21:10 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
А вы Data Sheet на свой МК не пробовали смотреть? А не какие то абстрактные примеры ![]() Вот эти имеют - PIC12F1840 PIC12F617 PIC12F1822 PIC12F615 PIC12F675 PIC12F683 PIC12F510, остальные - нет Добавлено через 58 секунд Даже в PIC10 серии есть парочка с АЦП (PIC10F220 PIC10F222) |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Не, ну естественно смотрю PIC12F675, потом в примерах протеуса пробовал разобрать PIC12C671. Я смотрю именно те, где в описании присутствует АЦП. Я поставил вопрос именно PIC12, потому что надеюсь что кроме этих есть еще и другие с АЦП, и именно с такими АЦП, которые позволяют мне сделать именно то, что на рисунке выше
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Ок, открываем DS на него, смотрим раздел 7.0 - ANALOG-TO-DIGITAL CONVERTER (A/D) MODULE (это и есть ваш АЦП) страницы 43-48. Там расписано все, вплоть до того, в какие регистры что писать. Это сообщение отредактировал(а) xvr - 4.10.2011, 12:01 |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
То что я делаю что-то не так, это вполне возможно. Никогда с такой сложной задачей для меня не сталкивался. Попробую еще раз
Посмотрите, правильно ли я составил код?
Вроде бы как настроил АЦП, входы и выходы. У меня на первый вход (AN0) поступает аналоговый сигнал (синусоида), а со второй ножки (GP1) хочу получить дискретное представление той синусоиды. Как мне вывести сигнал на GP1? Это сообщение отредактировал(а) BIV - 5.10.2011, 13:27 |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Обновил выше код. Теперь как мне вывести на GP1?
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Не совсем - бит GO/DONE в ADCON0 надо выставлять после програмирования всего остального
Это как? GP1 - это 1 бит, 10 бит с АЦП туда в параллель не влезут Ну и собственно цикл запуска/обработки АЦП отсутствует |
|||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Хотя да... Я просто хотел как-то убедиться, что программа в микроконтроллере рабочая, что хоть что-то выполняется, а не простаивает. Пусть хотя бы 1й бит выводится с каждым тактом. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
||||
|
||||
BIV |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Спасибо! Разобрался
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |