Организация поочередного управления каналов АЦП в MPlabe
-
vadim37rus
- Родился
- Сообщения: 6
- Зарегистрирован: Пн май 15, 2017 13:09:19
Организация поочередного управления каналов АЦП в MPlabe
Здравствуйте! Нужно запрограммировать поочередное снятие показания АЦП по каналам, сначала с AN1 Затем с AN4 для сравнения, как это сделать в MPlabe? Спасибо!
- Реклама
Re: Организация поочередного управления каналов АЦП в MPlabe
Схема где?
На каком языке пишемс? (асм, СИ?)

На каком языке пишемс? (асм, СИ?)
-
vadim37rus
- Родился
- Сообщения: 6
- Зарегистрирован: Пн май 15, 2017 13:09:19
Re: Организация поочередного управления каналов АЦП в MPlabe
[uquote="BOB51",url="/forum/viewtopic.php?p=3106179#p3106179"]Схема где?
На каком языке пишемс? (асм, СИ?)
[/uquote]
На асм) Схема в протеусе, показания с потенциомметра - 1АЦП, показания с термопары 2 АЦП
На каком языке пишемс? (асм, СИ?)
На асм) Схема в протеусе, показания с потенциомметра - 1АЦП, показания с термопары 2 АЦП
- Вложения
-
- Безымянный.png
- (85.46 КБ) 596 скачиваний
Re: Организация поочередного управления каналов АЦП в MPlabe
А при чем тут ПК?
Пишем программку для той схемки под выбранный ПИК...
Или даем объяву "сделайте за меня курсач" в разделе http://radiokot.ru/forum/viewforum.php?f=53

Пишем программку для той схемки под выбранный ПИК...
Или даем объяву "сделайте за меня курсач" в разделе http://radiokot.ru/forum/viewforum.php?f=53
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Организация поочередного управления каналов АЦП в MPlabe
vadim37rus, а какие-нибудь наработки уже есть ? Или только схема ?
-
vadim37rus
- Родился
- Сообщения: 6
- Зарегистрирован: Пн май 15, 2017 13:09:19
Re: Организация поочередного управления каналов АЦП в MPlabe
[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
[/uquote]
Мне чутка осталось) только каналы эти организовать на asm в Mplabe все остальное уже прописал, и на дисплей выводит, вторую часть программы где с термопары снимается - тоже, но из-за того что не знаю как задать каналы не могу организовать сравнение, потому что модуль АЦП забивается первыми измерениями, а мне надо поочередно по каналам. Как организую каналы преобразую АЦП и запишу в отдельные ячейки памяти, а там уже и сравнивать можно.
В Mplabe есть.
Добавлено after 12 minutes 24 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=3106948#p3106948"]А при чем тут ПК?
Пишем программку для той схемки под выбранный ПИК...
Или даем объяву "сделайте за меня курсач" в разделе http://radiokot.ru/forum/viewforum.php?f=53
Мне чутка осталось) только каналы эти организовать на asm в Mplabe все остальное уже прописал, и на дисплей выводит, вторую часть программы где с термопары снимается - тоже, но из-за того что не знаю как задать каналы не могу организовать сравнение, потому что модуль АЦП забивается первыми измерениями, а мне надо поочередно по каналам. Как организую каналы преобразую АЦП и запишу в отдельные ячейки памяти, а там уже и сравнивать можно.
-
vadim37rus
- Родился
- Сообщения: 6
- Зарегистрирован: Пн май 15, 2017 13:09:19
Re: Организация поочередного управления каналов АЦП в MPlabe
[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
Что в этом регистре вызвало Ваши вопросы?
Есть сомнения относительно того, что Вы остальное написали сами.
Ничего проще переключения мультиплексора АЦП нет.[/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
Битами CHS0...CHS2 выбирается канал. Изменяйте их, когда хотите его переключить, и всё...
Не понятно в чём проблема
Не понятно в чём проблема
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Организация поочередного управления каналов АЦП в MPlabe
Не понятно в чём вопрос.
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.
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
[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]
Большое Спасибо!)
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]
Большое Спасибо!)


