Easyelectronics.ru

Электроника для всех
Текущее время: 17 май 2022, 21:50

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Измерение ADC
СообщениеДобавлено: 18 ноя 2019, 15:00 
Только пришел

Зарегистрирован: 18 ноя 2019, 13:33
Сообщения: 7
Всем привет!
Начинаю осваивать STM8.
Измерения не верны. На выводе примерно 0.8В. Питание 5В. Результаты измерения разные 800-900 единиц, но не соответствуют ожидаемым.

MCU: stm8s003f3
IDE: ST Visual Develop
Compiler: Cosmic

// Настройка ADC однократно
void init_adc(void)
{
ADC_TDRH = 0b00000000;
ADC_TDRL = 0b00111000; // disable Schmitt trigger AIN3, AIN4, AIN5

ADC_CSR = 0b00000000;
ADC_CR1 = 0b01110000; // SPSEL=0b111:fADC=fMASTER/18=16/18=0.9MHz
ADC_CR2 = 0b00001000; // ALIGN=1:right alignment
ADC_CR3 = 0b00000000;

ADC_CR1 |= 0b00000001; // start adc
}



// Далее код считывания измерений периодически раз в 8 ms

ADC_CSR |= 0b00000100; // AIN 4, pin 20

ADC_CR1 |= 0b00000001; // start conversion
while (!(ADC_CSR & 0b10000000)) {;}

ADC_CSR &= 0b01111111; // сброс EOC флага

resl = ADC_DRL;
resh = ADC_DRH;
sens.adc_but_in = resh * 256L + resl;

Может быть, что делаю не так? Подскажите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерение ADC
СообщениеДобавлено: 18 ноя 2019, 15:06 
Только пришел

Зарегистрирован: 18 ноя 2019, 13:33
Сообщения: 7
Настройка GPIO

PC_ODR = 0b00000000; // "0"-in; "1"-out
PC_DDR = 0b11001111; // PC4, PC5 - in, digital
PC_CR1 = 0b11001111;
PC_CR2 = 0b11001111;

PD_ODR = 0b00000000; // PD2, PD3, PD5 - in, analog
PD_DDR = 0b11010011;
PD_CR1 = 0b11010011;
PD_CR2 = 0b11010011;

// led_out PC6 pin 16 out digital KT7 ok
// led_in PC5 pin 15 in digital KT8 ok
// but_in PD3 pin 20 in analog KT2 AIN4 ok
// int_but PC4 pin 14 in digital KT9 ok
// pwr(tag_con) PD2 pin 19 in analog KT4 AIN3 ok
// dev_ctrl PC7 pin 17 out digital KT6 ok


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерение ADC
СообщениеДобавлено: 18 ноя 2019, 15:28 
Только пришел

Зарегистрирован: 18 ноя 2019, 13:33
Сообщения: 7
Параметров ADC я не меняю. При этом результаты измерений абсолютно хаотичные. Т.е. так, если я вошел в отладку, и измерил в районе 300, то все остальные измерения тоже в районе 300 +/- 20. Включил в другой раз - 900. И все измерения в районе 900.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Измерение ADC
СообщениеДобавлено: 19 ноя 2019, 19:53 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 698
Откуда: Киев
только без нолей и единичек!
adc.h
Show


adc.c
Show


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 


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


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

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


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

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

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