реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> stm32f4 ADC, запуск по импульсу на ноге
klen
сообщение Dec 25 2014, 16:45
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Здравствуйте.
Необходимо на stm32f4 по приходу импульса на PC0 запускать преобразованиe с выводов PA0,PA1,PA2,PA3

можно в обработчике прерывании EXTI0 руками запускать АЦП на 4 канала, но спинным мозгом вижу что событие тригера EXTI0 может все это запустить без кода если АЦП настроить.

помогите шаблоном или тыкните рожей в пример. искал не нашел.

спасибо
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 25 2014, 17:57
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Отсюда ничего путнего не почерпнули?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 3 2015, 03:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702




Например так : Сигнал на ноге используется для управления таймером, а уже таймер генерирует событие для запуска АЦП


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 3 2015, 12:24
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(klen @ Dec 25 2014, 18:45) *
по приходу импульса на PC0 запускать преобразованиe с выводов PA0,PA1,PA2,PA3
Недоработка в схемотехнике. Запуск АЦП возможен по изменению Px11 и Px15. Таймера на PC0 не выведены. Остается либо ручной запуск в прерывании EXTI0 с вытекающими задержками и дрожанием фронта, либо изменить схему. Последнее видится более грамотным.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
klen
сообщение Jan 4 2015, 08:26
Сообщение #5


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Сергей Борщ @ Jan 3 2015, 15:24) *
Недоработка в схемотехнике. Запуск АЦП возможен по изменению Px11 и Px15. Таймера на PC0 не выведены. Остается либо ручной запуск в прерывании EXTI0 с вытекающими задержками и дрожанием фронта, либо изменить схему. Последнее видится более грамотным.


всех поздравляю с наступившим!!! желаю дешевых микросхем и пассивки!!! а также быстрой доствуки.

во во во!!! это то что я и хочу!!. можно шаблнчик кода плиз.........
я уже после поста увидел в доку что не любая нога способна тригировать ацп на пряму.

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 6 2015, 12:14
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(klen @ Jan 4 2015, 10:26) *
можно шаблнчик кода плиз.........
Извиняюсь, чуть не забыл. Вот для F1xx, для запуска от таймера:

Код
    // prepare to start conversions
    ADC1->CR2 = 0
            | 1 * ADC_CR2_ADON          // A/D Converter ON
            | 0 * ADC_CR2_CONT          // Continuous Conversion disabled
            | 0 * ADC_CR2_CAL           // A/D Calibration
            | 0 * ADC_CR2_RSTCAL        // Reset Calibration
            | 1 * ADC_CR2_DMA           // Direct Memory access enabled
            | 0 * ADC_CR2_ALIGN         // Data Alignment: right
            | 7 * ADC_CR2_JEXTSEL_0     // External event for injected group: JSWSTART
            | 0 * ADC_CR2_JEXTTRIG      // External Trigger Conversion mode for injected channels: disabled
            | 3 * ADC_CR2_EXTSEL_0      // External Event for regular group: TIM2CC2
            | 1 * ADC_CR2_EXTTRIG       // External Trigger Conversion mode for regular channels: enabled
            | 0 * ADC_CR2_JSWSTART      // Start Conversion of injected channels
            | 0 * ADC_CR2_SWSTART       // Start Conversion of regular channels
            | 0 * ADC_CR2_TSVREFE       // Temperature Sensor and VREFINT disabled
           ;

для запуска от EXTI надо заменить "3 * ADC_CR2_EXTSEL_0" на "15 * ADC_CR2_EXTSEL_0" или "7 * ADC_CR2_JEXTSEL_0" на "15 * ADC_CR2_JEXTSEL_0" . И настроить соответствующую ногу на EXTI15 или EXTI11 в SYSCFG->EXTICRx.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
klen
сообщение Jan 8 2015, 16:46
Сообщение #7


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Сергей Борщ @ Jan 6 2015, 15:14) *


это то что я хочу. буду пробывать. спасибо.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01407 секунд с 7
ELECTRONIX ©2004-2016