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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 28.10.2010, 22:22  
NikMih_1
Гражданин KAZUS.RU
 
Аватар для NikMih_1
 
Регистрация: 25.02.2008
Сообщений: 997
Сказал спасибо: 223
Сказали Спасибо 72 раз(а) в 58 сообщении(ях)
NikMih_1 на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от ut1wpr Посмотреть сообщение
могу лишь выразить сочувствие тем людям, которыми "я руководить буду"
Не можете проще, ну и ладно. Вы тоже не совсем эксперт в СИ. Ну поймал я в таблице символов Си такую конструкцию "&-Взятие адреса" и обрадовался - мне ведь очень важно научится оперировать адресами. А в этой строчке, за которую Вы меня об.... есть такая часть. Вот я и лопухнулся. В "братанах" я ничего плохого не вижу, кстати, 70% мужского населения нашей страны сколько-нибудь отсидели. Посмеяться я люблю, это "многое объясняет".
Реклама:
__________________
ДА, НО НЕТ!
NikMih_1 вне форума  
Непрочитано 30.10.2010, 10:52  
NikMih_1
Гражданин KAZUS.RU
 
Аватар для NikMih_1
 
Регистрация: 25.02.2008
Сообщений: 997
Сказал спасибо: 223
Сказали Спасибо 72 раз(а) в 58 сообщении(ях)
NikMih_1 на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Обещал сюда не ходить, попрощался, но старая любовь не ржавеет.
В руководстве
PIC24FJ64GA104 FAMILY
на стр.222 есть запись.
bit 7 BUFS: Buffer Fill Status bit (valid only when BUFM = 1)
1 = A/D is currently filling buffer 08-0F; user should access data in 00-07
0 = A/D is currently filling buffer 00-07; user should access data in 08-0F
Понимаю, что у этого АЦП буфер в 16 слов, но из какого конкретно слова читать последние данные? вот вопрос!
У меня просто, вызов АЦП, одно преобразование и запись этого числа в РАМ. Откуда его надо брать, какой бит ставить? Если бы ясно было, что буфер данных АЦП организован как СТЭК, то я без сомнения читал бы ADC1BUF0, но про организацию быфера ничего нет.
Вложения:
Тип файла: pdf PIC24FJ64GA104 Family.pdf (2.41 Мб, 373 просмотров)
__________________
ДА, НО НЕТ!

Последний раз редактировалось NikMih_1; 30.10.2010 в 11:24. Причина: Добавил последнюю фразу.
NikMih_1 вне форума  
Непрочитано 30.10.2010, 11:32  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от NikMih_1 Посмотреть сообщение
Обещал сюда не ходить, попрощался, но старая любовь не ржавеет.
В руководстве
PIC24FJ64GA104 FAMILY
на стр.222 есть запись.
bit 7 BUFS: Buffer Fill Status bit (valid only when BUFM = 1)
1 = A/D is currently filling buffer 08-0F; user should access data in 00-07
0 = A/D is currently filling buffer 00-07; user should access data in 08-0F
Понимаю, что у этого АЦП буфер в 16 слов, но из какого конкретно слова читать последние данные? вот вопрос!
У меня просто, вызов АЦП, одно преобразование и запись этого числа в РАМ. Откуда его надо брать, какой бит ставить? Если бы ясно было, что буфер данных АЦП организован как СТЭК, то я без сомнения читал бы ADC1BUF0, но про организацию быфера ничего нет.
То что вы привели действительно только если бит BUFM = 1. Он разделяет 16-ти словный буфер, на 2 по 8 слов. И АЦП заполняет сначала один буфер, потом другой. Флаги указывают на то какой буфер заполняет АЦП и доступ надо осуществлять к другому буферу.
В вашем случае это не нужно, у вас же 1 16-ти словный буфер. Ваш результат одиночного преобразования будет в ADC1BUF0.
realid вне форума  
Сказали "Спасибо" realid
NikMih_1 (30.10.2010)
Непрочитано 30.10.2010, 11:35  
NikMih_1
Гражданин KAZUS.RU
 
Аватар для NikMih_1
 
Регистрация: 25.02.2008
Сообщений: 997
Сказал спасибо: 223
Сказали Спасибо 72 раз(а) в 58 сообщении(ях)
NikMih_1 на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от realid Посмотреть сообщение
В вашем случае это не нужно, у вас же 1 16-ти словный буфер. Ваш результат одиночного преобразования будет ADC1BUF0.
А зачем тогда 16 слов? Надо видно что-то устанавливать, чтоб далее не писалось в ADC1BUF1, или этот буфер всё же как стэк?
__________________
ДА, НО НЕТ!
NikMih_1 вне форума  
Непрочитано 30.10.2010, 11:40  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от NikMih_1 Посмотреть сообщение
А зачем тогда 16 слов? Надо видно что-то устанавливать, чтоб далее не писалось в ADC1BUF1, или этот буфер всё же как стэк?
Заполнение этого буфера определяют биты SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits. Если там Interrupts at the completion of conversion for each sample/convert sequence, то АЦП всегда будет результат помещать в ADC1BUF0, если Interrupts at the completion of conversion for each 2nd sample/convert sequence, то первый результат в ADC1BUF0, второй в ADC1BUF1 и так по кругу. Удобно при поочередном сканировании каналов.
realid вне форума  
Сказали "Спасибо" realid
NikMih_1 (30.10.2010)
Непрочитано 30.10.2010, 11:42  
NikMih_1
Гражданин KAZUS.RU
 
Аватар для NikMih_1
 
Регистрация: 25.02.2008
Сообщений: 997
Сказал спасибо: 223
Сказали Спасибо 72 раз(а) в 58 сообщении(ях)
NikMih_1 на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от realid Посмотреть сообщение
Заполнение этого буфера определяют биты SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits. Если там Interrupts at the completion of conversion for each sample/convert sequence, то АЦП всегда будет результат помещать в ADC1BUF0, если Interrupts at the completion of conversion for each 2nd sample/convert sequence, то первый результат в ADC1BUF0, второй в ADC1BUF1 и так по кругу. Удобно при поочередном сканировании каналов.
Вот это слова не мальчика НО МУЖА!!! Ясно и конкретно. Спасибо.
__________________
ДА, НО НЕТ!
NikMih_1 вне форума  
Непрочитано 30.10.2010, 11:43  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от NikMih_1 Посмотреть сообщение
Обещал сюда не ходить, попрощался, но старая любовь не ржавеет.
В руководстве
PIC24FJ64GA104 FAMILY
на стр.222 есть запись.
bit 7 BUFS: Buffer Fill Status bit (valid only when BUFM = 1)
1 = A/D is currently filling buffer 08-0F; user should access data in 00-07
0 = A/D is currently filling buffer 00-07; user should access data in 08-0F
Понимаю, что у этого АЦП буфер в 16 слов, но из какого конкретно слова читать последние данные? вот вопрос!
У меня просто, вызов АЦП, одно преобразование и запись этого числа в РАМ. Откуда его надо брать, какой бит ставить? Если бы ясно было, что буфер данных АЦП организован как СТЭК, то я без сомнения читал бы ADC1BUF0, но про организацию быфера ничего нет.
Код:
int  readADC(int  channel)
{
    AD1CHS  =  channel;
    AD1CON1bits.SAMP  =  1;
    T1CONbits.TON  =  1;
    TMR1  =  0;
    while  (TMR1  ‹  100);
    AD1CON1bits.SAMP  =  0;
    while  (!AD1CON1bits.DONE);
    return  ADC1BUF0;
}
RTFM
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
NikMih_1 (30.10.2010)
Непрочитано 30.10.2010, 11:57  
NikMih_1
Гражданин KAZUS.RU
 
Аватар для NikMih_1
 
Регистрация: 25.02.2008
Сообщений: 997
Сказал спасибо: 223
Сказали Спасибо 72 раз(а) в 58 сообщении(ях)
NikMih_1 на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от realid Посмотреть сообщение
Заполнение этого буфера определяют биты SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits. Если там Interrupts at the completion of conversion for each sample/convert sequence, то АЦП всегда будет результат помещать в ADC1BUF0, если Interrupts at the completion of conversion for each 2nd sample/convert sequence, то первый результат в ADC1BUF0, второй в ADC1BUF1 и так по кругу. Удобно при поочередном сканировании каналов.
Читаю:
bit 5-2 SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits
1111 = Interrupts at the completion of conversion for each 16th sample/convert sequence
1110 = Interrupts at the completion of conversion for each 15th sample/convert sequence
.....
0001 = Interrupts at the completion of conversion for each 2nd sample/convert sequence
0000 = Interrupts at the completion of conversion for each sample/convert sequence

Что это за прерывания? Мне достаточно бита DONE, для моих целей. В принципе это прерывание его заменяет, но как его использовать? Где его флаг?
__________________
ДА, НО НЕТ!
NikMih_1 вне форума  
Непрочитано 30.10.2010, 12:00  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от NikMih_1 Посмотреть сообщение
Читаю:
bit 5-2 SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits
1111 = Interrupts at the completion of conversion for each 16th sample/convert sequence
1110 = Interrupts at the completion of conversion for each 15th sample/convert sequence
.....
0001 = Interrupts at the completion of conversion for each 2nd sample/convert sequence
0000 = Interrupts at the completion of conversion for each sample/convert sequence

Что это за прерывания? Мне достаточно бита DONE, для моих целей. В принципе это прерывание его заменяет, но как его использовать? Где его флаг?
IFS0bits.AD1IF он поднимется после указанного количества преобразований. Если выбранно 1 преобразование, то после каждого.
realid вне форума  
Сказали "Спасибо" realid
NikMih_1 (30.10.2010)
Непрочитано 30.10.2010, 12:21  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Вопросы от NikMih_1

Сообщение от NikMih_1 Посмотреть сообщение
Читаю:
bit 5-2 SMPI‹3:0›: Sample/Convert Sequences Per Interrupt Selection bits
1111 = Interrupts at the completion of conversion for each 16th sample/convert sequence
1110 = Interrupts at the completion of conversion for each 15th sample/convert sequence
.....
0001 = Interrupts at the completion of conversion for each 2nd sample/convert sequence
0000 = Interrupts at the completion of conversion for each sample/convert sequence

Что это за прерывания? Мне достаточно бита DONE, для моих целей. В принципе это прерывание его заменяет, но как его использовать? Где его флаг?
Ю.С. Магда
Микроконтроллеры PIC:
архитектура и программирование
стр. 213
Цитата:
В микроконтроллерах PIC24F предусмотрен очень удобный вариант конфигу
рирования АЦП, позволяющий обойтись без ручного задания точных временных
интервалов, как это мы делали, например, с помощью Таймера 1 в предыдущих
двух примерах. Это позволяет в определенной степени автоматизировать про
цесс аналогоцифрового преобразования и облегчить задачу программисту.
Для работы в таком режиме нужно установить биты SSRC2…SSRC0 регистра
AD1CON1 в значение 0b111 (0xE). В этом случае временные параметры про
цесса выборки и преобразования будут определяться внутренним счетчиком,
а процесс преобразования будет запускаться автоматически по окончании эта
па выборки.
Рассмотрим пример программы, в которой будем использовать такую кон
фигурацию модуля АЦП. В качестве исходного текста возьмем тот, который мы
использовали в первом примере, и модифицируем его. Вот как выглядит текст
модифицированной программы:
Далее следует готовый фрагмент программы под ваши требования. С подробными комментариями. Документ у вас должен быть, я его выкладывал для вас.
RTFM
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
NikMih_1 (30.10.2010)
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы по PROTEUS-у Advanced_LAMER Proteus 372 19.09.2021 01:20
Вопросы ENC28J60 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 123 02.04.2018 22:30
Wiznet W7100. Общие вопросы R_N Микроконтроллеры, АЦП, память и т.д 7 06.06.2012 00:33
Вопросы по AVR-LIBС rear Микроконтроллеры, АЦП, память и т.д 5 08.10.2010 19:38
Вопросы об управлении MOSFET'ами в стабах Vadeg Электроника - это просто 14 19.12.2009 23:21


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


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