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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.08.2011, 22:39  
Keldish
Частый гость
 
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Keldish на пути к лучшему
По умолчанию STM8S207 ADC?

Всем привет.
АЦП работает в Single mode.
По прерыванию таймера TIM4, данные одного канала получаю без проблем.
Упёрся в проблему при попытке получить в данные с двух каналов АЦП.

Для одного канала код такой(прошу сильно не пинать за кривость):

#pragma vector=TIM4_OVR_UIF_vector
__interrupt void TIM4_OVR_UIF(void)
{
TIM4_SR_bit.UIF=0;

ADC_CSR=0x01;
ADC_CR1_ADON=1;
adc1_h=ADC_DRH;
adc1_l=ADC_DRL;
ADC_CSR_EOC=0;
}
Для второго канала добавляю:
ADC_CSR=0x02;
ADC_CR1_ADON=1;
adc2_h=ADC_DRH;
adc2_l=ADC_DRL;
ADC_CSR_EOC=0;

В результате в двух каналах получаю результат измерения канала №2.
К вечеру мозг отказываецо работать, помогите пинком где накосячил.
Реклама:
Keldish вне форума  
Сказали "Спасибо" Keldish
warel (28.06.2019)
Непрочитано 07.08.2011, 23:33  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Дык так и должно получиться.
Надо по прерыванию окончания преобразования АЦП. С анализом, какой канал был запущен. По результату анализа считывать в нужную переменную...
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
Непрочитано 08.08.2011, 00:45  
Keldish
Частый гость
 
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Keldish на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Спасибо, попробую...
Странно что не получается иначе.
Keldish вне форума  
Сказали "Спасибо" Keldish
warel (28.06.2019)
Непрочитано 08.08.2011, 00:59  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Для преобразования ему(МК) требуется 14 тактов АЦП (задаётся при конфигурации АЦП). Не тактов МК, а именно 14 тактов АЦП. Он просто не успевает сделать первое измерение, а ему дают уже следующее....
Вот и получается везде одно значение.

Сообщение от Keldish Посмотреть сообщение
Странно что не получается иначе.
Можно и иначе, без прерывания, ожидая флаг окончания преобразования ADC или дать ему времени с запасом...

Последний раз редактировалось omercury; 08.08.2011 в 01:03.
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
Непрочитано 08.08.2011, 01:21  
Keldish
Частый гость
 
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Keldish на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Пробовал вариант с "запасом" времени, результат отрицательный, похоже что подобная реализация не предусмотрена.
Похоже что нашёл простое решение этой пролемы, завтра проверю и отпишусь.
Keldish вне форума  
Сказали "Спасибо" Keldish
warel (28.06.2019)
Непрочитано 08.08.2011, 01:41  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Сообщение от Keldish Посмотреть сообщение
похоже что подобная реализация не предусмотрена.
Да ему, в общем-то, по-барабану. При однократном преобразовании оттарабанил своё и, пока не произведено новое измерение, данные в ADCDR.
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
Непрочитано 08.08.2011, 12:35  
Keldish
Частый гость
 
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Keldish на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Как всегда утро вечера мудренее...
Вся проблема была в том что забыл по запарке отключить PB_CR1 all PD pins output push pull, что вносило глюк, при работе с одним каналом глюк не был замечен.
немного изменил код, сейчас всё работает:
ADC_CSR=0x01;
ADC_CR1_ADON=1;
ADC_CSR_EOC=0;
adc_eh=ADC_DRH;
adc_el=ADC_DRL;
while(!ADC_CSR_EOC);

ADC_CSR=0x02;
ADC_CR1_ADON=1;
ADC_CSR_EOC=0;
adc_qh=ADC_DRH;
adc_ql=ADC_DRL;
while(!ADC_CSR_EOC);

Так же для этой задачи можно было использовать Scan Single mode.
Keldish вне форума  
Сказали "Спасибо" Keldish
warel (28.06.2019)
Непрочитано 08.08.2011, 12:53  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Сообщение от Keldish Посмотреть сообщение
while(!ADC_CSR_EOC);
Вот пока флаг не выставится, МК висит в ожидании завершения преобразования АЦП и ничего больше выполнять не может....
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
Непрочитано 08.08.2011, 12:58  
Keldish
Частый гость
 
Регистрация: 22.09.2005
Адрес: Россия Ставрополь
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Keldish на пути к лучшему
По умолчанию Re: STM8S207 ADC?

В моём случае это не имеет значения, других "важных" задач у МК всё равно нет.
Для других задач будет другая реализация.
Keldish вне форума  
Сказали "Спасибо" Keldish
warel (28.06.2019)
Непрочитано 08.08.2011, 13:08  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8S207 ADC?

Тогда разбирайтесь с остальными режимами. Чтоб больше не возвращаться.
omercury вне форума  
Сказали "Спасибо" omercury
warel (28.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фиксированная опора 0.6В ADC PIC16F887 Tujman Микроконтроллеры, АЦП, память и т.д 3 09.03.2011 21:47
STM8S207 непонятки с портом E Keldish Микроконтроллеры, АЦП, память и т.д 5 01.03.2011 14:24
Помогите настроить АЦП в Atmega32 sergx1300 Микроконтроллеры, АЦП, память и т.д 72 09.11.2010 00:28
Особенности ADC у ATTiny rpocc Микроконтроллеры, АЦП, память и т.д 14 06.07.2010 18:43
Шумит и свистит ADC на LPC2148 Vas2 Микроконтроллеры, АЦП, память и т.д 5 01.03.2009 16:14


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


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