![]() |
|
Другие темы раздела | |
ARM, Cortex, STM32 L151K4 зависает в LPR
https://www.cyberforum.ru/ arm/ thread2089009.html MK L151K4 хотел попробовать включить LPR режим как в примере http://we.iosyitistromyss.ru/STM8/low-power-run-esche-odin-rezhim-energosberezheniya.html пример проверил на STM8L Dyscovery, все... |
ARM, Cortex, STM32 STM8L052 option bytes Добрый день! надо разобраться с Option bytes в STM8L052R8. Не могу найти мануал в котором описаны эти регистры, в частности интересуют заводские значения. А также может кто подскажет, с завода... |
STM8L152 RTC и спящий режим. ARM, Cortex, STM32 День добрый, хотел бы использовать STM8L152 в режиме минимально возможного потребляемого тока с включенным RTC. В даташите говорится что лучшее что возможно это Active-halt wyth full RTC... |
ARM, Cortex, STM32 Вопросы по LSI и потреблению Не получается снизить энергопотребление. Переключился на LSI (включил соответствующий option byte), потребление упало с 9,5 mA до 8,5 mA, что всё равно очень много Вот код //отключение... https://www.cyberforum.ru/ arm/ thread2089006.html |
ARM, Cortex, STM32 STM8 IAR... нюансы
https://www.cyberforum.ru/ arm/ thread2089005.html Написал свой криптозагрузчик... сделал все красиво, с индикацией на дисплее режима ожидания, индикацией процесса загрузки, для этого использовал несколько прерываний... НО в конце с удивлением... |
ARM, Cortex, STM32 \st_toolset\stvd\stvdebug.exe не запускается (решено) что делать ? win xp <Изображение удалено> |
ST TOOLSET STVD portable ? ARM, Cortex, STM32 V4.3.10 Проверяйте. https://vk.com/doc70462960_441719987 |
ARM, Cortex, STM32 2016г.Обзор,сравнение и тесты 4 компиляторов для STM8 (engl) Cosmic SDCC Raisonance IAR http://colecovision.eu/stm8/sompyters.shtml Было бы здорово если кто-то переведёт лучше чем машинный перевод,включая графику Машинный перевод:... https://www.cyberforum.ru/ arm/ thread2089002.html |
ARM, Cortex, STM32 STM8 в работе...
https://www.cyberforum.ru/ arm/ thread2089001.html По ходу юзания, появляются вопросы, которые вроде уже не вписываются в тему "STM8 Самое начало", тем более oxytt тут посоветовал с новой веткой... в общем буду сюда сыпать вопросы более глубокие чем... |
ARM, Cortex, STM32 где взять Raisonance не кашляющий ? можно и IDE rid7 где взять Raisonance не кашляющий ? можно и IDE rid7 https://www.cyberforum.ru/ arm/ thread2089000.html |
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
|
|
14.01.2017, 11:05 | 0 |
Данные с двух каналов АЦП по очередно.[Решено]14.01.2017, 11:05. Просмотров 7588. Ответов 16
Метки (Все метки)
Ответ ![]() У меня инит АЦП сделан так: Код
#define ADC1_TDRH_MASK ((u8)((1 << (ADC1_CSR_CH8 - 8)) * 0 \ | (1 << (ADC1_CSR_CH9 - 8)) * 0 \ | (1 << (ADC1_CSR_CH10 - 8)) * 0 \ | (1 << (ADC1_CSR_CH11 - 8)) * 0 \ | (1 << (ADC1_CSR_CH12 - 8)) * 0 \ | (1 << (ADC1_CSR_CH13 - 8)) * 0 \ | (1 << (ADC1_CSR_CH14 - 8)) * 0 \ | (1 << (ADC1_CSR_CH15 - 8)) * 0)) // маска триггеров шмитта каналов 8-12 #define ADC1_TDRL_MASK ((u8)((1 << ADC1_CSR_CH0) * 1 \ | (1 << ADC1_CSR_CH1) * 1 \ | (1 << ADC1_CSR_CH2) * 1 \ | (1 << ADC1_CSR_CH3) * 1 \ | (1 << ADC1_CSR_CH4) * 1 \ | (1 << ADC1_CSR_CH5) * 1 \ | (1 << ADC1_CSR_CH6) * 1 \ | (1 << ADC1_CSR_CH7) * 0)) // маска триггеров шмитта каналов 0-7 /***************************************************************************** * Настройка АЦП *****************************************************************************/ void init_adc (void) { // Инициализация АЦП ADC1->CR1 &= ~ADC1_CR1_ADON; // выключить АЦП для изменения настроек ADC1->TDRH = ADC1_TDRH_MASK; // маска используемых входов ADC1->TDRL = ADC1_TDRL_MASK; // маска используемых входов ADC1->CSR = ADC_IN // измерять до входа 6 | ADC1_CSR_AWDIE * 0 // запретить прерывания аналогового вочдога | ADC1_CSR_EOCIE * 1; // Разрешить прерывание по окончании измерения ADC1->CR1 = ADC1_CR1_SPSEL4 // частота преобразования 16МГц / 4 = 4 МГц | ADC1_CR1_CONT * 0 // режим однократного измерения | ADC1_CR1_ADON * 0; ADC1->CR2 = ADC1_CR2_EXTTRIG * 0 // внутренний триггер | ADC1_CR2_EXTSEL * 0 // внешний триггер не используется | ADC1_CR2_ALIGN * 0 // выравнивание влево | ADC1_CR2_SCAN * 1; // Режим сканирования ADC1->CR3 = ADC1_CR3_DBUF * 1; // с использованием буфера ADC1->CR1 |= ADC1_CR1_ADON; // включить АЦП } Запускаю из прерывания таймера: Код
/****************************************************************************** * Системное прерывание 1 мс ******************************************************************************/ INTERRUPT_HANDLER (SysTick_Timer_ISR, 23) { static u16 ADC_timer = 0; TIM4->SR1 = 0; // Сбросим флаг прерывания // счётчики работают с интервалом в 1 мс system_time++; // системный счётчик времени if ((system_time - ADC_timer) >= ADC_TIMER) { ADC_timer = system_time; ADC1->CR1 |= ADC1_CR1_ADON; // запустить АЦП } } Код
static u8 buf [7]; // массив отсчётов ацп /***************************************************************************** * прерывание по окончании измерения * здесь считывается напряжение сети *****************************************************************************/ INTERRUPT_HANDLER (ADC1_End_of_conversion_ISR, 22) { u8 flags = ADC1->CSR; flags &= ~ADC1_CSR_EOC; // снять флаг прерывания ADC1->CSR = flags; buf [0] = ADC1->DB0RH; // сохраняем значения buf [1] = ADC1->DB1RH; buf [2] = ADC1->DB2RH; buf [3] = ADC1->DB3RH; buf [4] = ADC1->DB4RH; buf [5] = ADC1->DB5RH; buf [6] = ADC1->DB6RH; control_func (); } Вернуться к обсуждению: Данные с двух каналов АЦП по очередно.[Решено]
0
|
|
14.01.2017, 11:05 | |
АЦП несколько каналов Использование нескольких каналов АЦП Большое количество АЦП каналов Переключение каналов АЦП atmega88 |
|