Easyelectronics.ru

Электроника для всех
Текущее время: 24 сен 2017, 04:40

Часовой пояс: UTC + 5 часов



    • JLCPCB for PCB Prototyping: 10 шт. 2-слоя 100*100mm 2$(около 140rub), изготовление за 24 часа.
    • Создание принципиальных схем и проектирование печатных плат
    • Крупнейший китайский онлайн магазин радиодеталей. Скидка 50%
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 12 фев 2014, 06:57 
Старожил
Аватара пользователя

Зарегистрирован: 22 мар 2010, 21:38
Сообщения: 1623
Откуда: Нижний Тагил
CAN есть только в 208. Я использую под емкие задачки 207. Вместо mega644P.

_________________
Электроника для модельных железных дорог. DCC и разные чудеса с ним.
XpressNet не так уж и страшно, как казалось на первый взгляд...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 12 фев 2014, 09:54 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 1756
Откуда: КЧР, поселок Нижний Архыз
Archee писал(а):
Подскажите,
Есть ли какой выход из сложившейся ситуации или придётся каждое значение при сканировании 15-ти каналов доставать по отдельности?

1. Создаем массив на 15 элементов + счетчик, указывающий на номер текущего канала.
2. Циклически сканируем (в прерываниях).
3. В основном коде просто читаем нужное значение из массива, обновляются они "сами по себе".

_________________
Поттеринг, умри!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 10 мар 2017, 16:49 
Здравствуйте!

Зарегистрирован: 27 июн 2012, 20:59
Сообщения: 2
RicherD писал(а):
Сделал все, как по даташиту.... Заморочки больше надо вытворять в прерывании.


Здравствуйте!

Если есть возможность, подскажите, какие именно заморочки надо вытворить в прерывании?
Два дня с этой аналогичной ситуацией не могу разобраться: на 0-м канале есть данные, на 1-м канале реакции 0.
По даташиту не могу найти как правильно сделать.

Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 10 мар 2017, 17:40 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 1756
Откуда: КЧР, поселок Нижний Архыз
Вот пример чтения двух каналов.

_________________
Поттеринг, умри!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 19 май 2017, 11:31 
Здравствуйте!

Зарегистрирован: 18 ноя 2015, 11:20
Сообщения: 3
Если еще актуально, вот рабочий пример с двумя каналами (можно и больше)
Инициализация:
Код:
// ------------ ADC1 -------------------
void ADC1_Config(void)
{
  GPIO_Init(GPIOB,GPIO_PIN_6,GPIO_MODE_IN_FL_NO_IT);  // PB.6 - AIN6 - ток двигателя
  GPIO_Init(GPIOB,GPIO_PIN_7,GPIO_MODE_IN_FL_NO_IT);  // PB.7 - AIN7 - датчик освещенности
   
  ADC1->CR1  = 0x61; // 0b01100001;   // enable ADC
  ADC1->CR2  = 0x08; // 0b00001000;   // right alignment
  ADC1->CR3  = 0x00; // 0;              // data bufer disable
  ADC1->TDRL = 0xC0; // 0b11000000;  // disable Schmitt triggers for AIN7 & AIN6

  Overload=0;
  LightLewel=0;
}


Процедура получения данных с заданного канала АЦП
Код:
uint16_t GetADCvalue(uint8_t ChanelNumb)
{
uint16_t tmphvalue;
uint16_t tmplvalue;

ADC1->CSR = ChanelNumb;        // channel
Delay(10);                     
ADC1->CR1 |= 0x61;           
while(!(ADC1->CSR & ADC1_CSR_EOC)){;}   
ADC1_ClearITPendingBit(ADC1_IT_EOC);
tmplvalue = ADC1->DRL;
tmphvalue = (uint16_t)ADC1->DRH << 8;
tmphvalue = tmphvalue + tmplvalue;
return (tmphvalue);
}


Собственно вызов процедуры в программе:
Код:
...
Overload=GetADCvalue(0x06);
...
LightLewel=GetADCvalue(0x07);
...


Проверено, работает на STM8S105.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB