Организация поочередного управления каналов АЦП в MPlabe

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
vadim37rus
Родился
Сообщения: 6
Зарегистрирован: Пн май 15, 2017 13:09:19

Организация поочередного управления каналов АЦП в MPlabe

Сообщение vadim37rus »

Здравствуйте! Нужно запрограммировать поочередное снятие показания АЦП по каналам, сначала с AN1 Затем с AN4 для сравнения, как это сделать в MPlabe? Спасибо!
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение BOB51 »

Схема где?
На каком языке пишемс? (асм, СИ?)
:tea:
Реклама
vadim37rus
Родился
Сообщения: 6
Зарегистрирован: Пн май 15, 2017 13:09:19

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение vadim37rus »

[uquote="BOB51",url="/forum/viewtopic.php?p=3106179#p3106179"]Схема где?
На каком языке пишемс? (асм, СИ?)
:tea:[/uquote]
На асм) Схема в протеусе, показания с потенциомметра - 1АЦП, показания с термопары 2 АЦП
Вложения
Безымянный.png
(85.46 КБ) 596 скачиваний
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15561
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение BOB51 »

А при чем тут ПК?
Пишем программку для той схемки под выбранный ПИК...
Или даем объяву "сделайте за меня курсач" в разделе http://radiokot.ru/forum/viewforum.php?f=53
:roll:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение pyzhman »

Могу заняться.
Docendo discimus
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение Аlex »

vadim37rus, а какие-нибудь наработки уже есть ? Или только схема ?
Реклама
vadim37rus
Родился
Сообщения: 6
Зарегистрирован: Пн май 15, 2017 13:09:19

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение vadim37rus »

[uquote="Аlex",url="/forum/viewtopic.php?p=3107181#p3107181"]vadim37rus, а какие-нибудь наработки уже есть ? Или только схема ?[/uquote]
В Mplabe есть.

Добавлено after 12 minutes 24 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=3106948#p3106948"]А при чем тут ПК?
Пишем программку для той схемки под выбранный ПИК...
Или даем объяву "сделайте за меня курсач" в разделе http://radiokot.ru/forum/viewforum.php?f=53
:roll:[/uquote]
Мне чутка осталось) только каналы эти организовать на asm в Mplabe все остальное уже прописал, и на дисплей выводит, вторую часть программы где с термопары снимается - тоже, но из-за того что не знаю как задать каналы не могу организовать сравнение, потому что модуль АЦП забивается первыми измерениями, а мне надо поочередно по каналам. Как организую каналы преобразую АЦП и запишу в отдельные ячейки памяти, а там уже и сравнивать можно.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25234
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение КРАМ »

Изображение

Что в этом регистре вызвало Ваши вопросы?
Есть сомнения относительно того, что Вы остальное написали сами.
Ничего проще переключения мультиплексора АЦП нет.
vadim37rus
Родился
Сообщения: 6
Зарегистрирован: Пн май 15, 2017 13:09:19

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение vadim37rus »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3107777#p3107777"]Изображение

Что в этом регистре вызвало Ваши вопросы?
Есть сомнения относительно того, что Вы остальное написали сами.
Ничего проще переключения мультиплексора АЦП нет.[/uquote]


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

Вот я снимаю показания с 1 канала, затем надо переключится на 4.

movlw B'10000101';настройка АЦП
; |||||||| ;<АЦП выключен>
; |||||||*-- ADON включение АЦП 0 - отключен, 1-включен
; ||||||*--- GO/DONE 0-данные готовы 1-преобразование
; |||||*-- CHS0 \
; ||||*--- CHS1 / выбор аналогового канала
; |||*-- CHS2 /
; ||*--- не используется
; |*-- VCGF опора 0 - Vdd 1 - вывод Vref
; *--- ADFM выравнивание результата 0-левое 1 правое
movwf ADCON0
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение Аlex »

Битами CHS0...CHS2 выбирается канал. Изменяйте их, когда хотите его переключить, и всё...
Не понятно в чём проблема :dont_know:
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение Albert_V »

Не понятно в чём вопрос.
1. Загружаем в ADCON0 число с требуемым каналом ADC (к примеру, movlw B'10000101').
2. Ждём (время TACQ) /читать раздел "A/D Acquisition Requirements"/.
3. Поднимаем бит ADCON0,GO
4. Когда ADCON0,GO станет "0" (или получено прерывание из ADC) считываем значение с ADC и сохраняем в соответствующий регистр.
5. Возвращаемся к пункту 1.
-----
P.S.
Если непонятен пункт "1" - один из вариантов решения:
Делаем таблицу значений для загрузки в ADCON0.
Организовываем некий счётчик, который считает от "0" до требуемого "числа вариантов переключения входов".
По числу из этого счётчика читаем строку из таблицы и загружаем в ADCON0.
vadim37rus
Родился
Сообщения: 6
Зарегистрирован: Пн май 15, 2017 13:09:19

Re: Организация поочередного управления каналов АЦП в MPlabe

Сообщение vadim37rus »

[uquote="Albert_V",url="/forum/viewtopic.php?p=3107879#p3107879"]Не понятно в чём вопрос.
1. Загружаем в ADCON0 число с требуемым каналом ADC (к примеру, movlw B'10000101').
2. Ждём (время TACQ) /читать раздел "A/D Acquisition Requirements"/.
3. Поднимаем бит ADCON0,GO
4. Когда ADCON0,GO станет "0" (или получено прерывание из ADC) считываем значение с ADC и сохраняем в соответствующий регистр.
5. Возвращаемся к пункту 1.
-----
P.S.
Если непонятен пункт "1" - один из вариантов решения:
Делаем таблицу значений для загрузки в ADCON0.
Организовываем некий счётчик, который считает от "0" до требуемого "числа вариантов переключения входов".
По числу из этого счётчика читаем строку из таблицы и загружаем в ADCON0.[/uquote]

Большое Спасибо!)
Ответить

Вернуться в «PIC»