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

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

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

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

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

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


 
Опции темы
Непрочитано 04.08.2011, 10:27  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Tiomich Посмотреть сообщение
Значит нужно ждать, когда станут ширпотребовскими процы с сопроцессором.
Cortex M4 выполняет кое какие операции с плавучкой, и в то же время позиционируется как ширпотребовский кристалл.
Уже выпускается NXP и вроде как ST тоже анонсировал ... скоро надо полагать появятся ...
Реклама:
SasaVitebsk вне форума  
Непрочитано 04.08.2011, 16:06  
prisma2011
Временная регистрация
 
Регистрация: 05.03.2011
Сообщений: 67
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
prisma2011 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Подскажите, ктонибудь подключал OpenJTAG программатор (его китайцы продают) к Кейлу? И где бы прочитать описание на русском по программе eclipse для win32?
prisma2011 вне форума  
Непрочитано 05.08.2011, 12:47  
^smbd^
Частый гость
 
Регистрация: 18.01.2011
Сообщений: 21
Сказал спасибо: 5
Сказали Спасибо 1 раз в 1 сообщении
^smbd^ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Ребят, как обрабатывать несколько каналов ацп?
Вот как инициализирую АЦП:
Цитата:
void ADC_init(void) // Инициализация ацп
{
RCC-›APB2ENR |= RCC_APB2ENR_ADC1EN; // подаем такты на АЦП
ADC1-›CR2 |= ADC_CR2_ADON; // подаем питание на АЦП

ADC1-›SQR1|= ADC_SQR1_L_0; // Выставили колличество преобразований равным 2

ADC1-›CR2 &= ~ADC_CR2_EXTSEL; // Обнулили ( Timer CC1 event)
ADC1-›CR2 |= ADC_CR2_EXTSEL_2; // Запуск по TRGO Timer 3
ADC1-›CR2 |= ADC_CR2_CONT; // Режим непрерывных преобразований

ADC1-›CR2 |= ADC_CR2_EXTTRIG; // включаем запуск от внешнего события

ADC1-›SQR3 |= ADC_SQR3_SQ1_1 | ADC_SQR3_SQ1_2|ADC_SQR3_SQ1_3;//На 14 канал 1-е преобр
ADC1-›SQR3 |=ADC_SQR3_SQ2_0| ADC_SQR3_SQ2_1 | ADC_SQR3_SQ2_2|ADC_SQR3_SQ2_3; //На 15 канал 2-е преобр

ADC1-›CR1 |= ADC_CR1_EOCIE; // вкл. прерывания
NVIC_SetPriority(ADC1_IRQn, 10);

}
Далее в прерывании считываю значение
Цитата:
void ADC1_IRQHandler(void)
{
ADC=ADC1-›DR; //считали в переменную
/*Написали на монитор*/
lcd_clear();
set_cursor(0,0);
lcd_print ("ADC:");
set_cursor(0,1);
lcd_print(itoa(ADC,10));

ADC1-›SR&=~ADC_SR_EOC; /*Пытаюсь программно обнулить EOC( написано в референсе вроде как). Это почему-то не работает - значение ADC1-›SR остается неизменным со стоящим EOC */

}
Значение оказывается с первого преобразования и похоже происходит постоянное считывание его.
Вот , что говорит нам референс:
Миниатюры:
Нажмите на изображение для увеличения
Название: ADC_continuous mode.JPG
Просмотров: 115
Размер:	110.1 Кб
ID:	24534  

Последний раз редактировалось ^smbd^; 05.08.2011 в 13:11.
^smbd^ вне форума  
Непрочитано 07.08.2011, 12:15  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ^smbd^ Посмотреть сообщение
как обрабатывать несколько каналов ацп?
Флаг SCAN надо добавить
tanq вне форума  
Сказали "Спасибо" tanq
^smbd^ (09.08.2011)
Непрочитано 07.08.2011, 12:49  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ^smbd^ Посмотреть сообщение
Далее в прерывании считываю значение
Цитата:
void ADC1_IRQHandler(void)
{
ADC=ADC1-›DR; //считали в переменную
/*Написали на монитор*/
lcd_clear();
set_cursor(0,0);
lcd_print ("ADC:");
set_cursor(0,1);
lcd_print(itoa(ADC,10));
ADC1-›SR&=~ADC_SR_EOC; /*Пытаюсь программно обнулить EOC( написано в референсе вроде как). Это почему-то не работает - значение ADC1-›SR остается неизменным со стоящим EOC */
}
Насколько целесообразно впихивать столько в прерывание ?
Всегда старались обработчик сделать как можно меньше, выставить флаг и вернуться .
Или нет ? ( © Bill)
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 07.08.2011, 14:00  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от dosikus Посмотреть сообщение
Всегда старались обработчик сделать как можно меньше, выставить флаг и вернуться .
А зачем? Постоянная проверка флага - это лишний overhead и к тому же не позволяет вытеснять низкий приоритет более высоким. Если хочется иметь возможность не блокировать другие прерывания - на ARM это и так есть, а на всякой мелочи типа AVR можно было флаг прерывания сразу сбросить, чтоб могли вызыываться следующие прерывания.

Вывод на экран из обработчика действтилеьно лучше бы убрать, т.к. это по сути фоновая задача и они может занять больше времени, чем период между прерываниями.
tanq вне форума  
Непрочитано 07.08.2011, 14:15  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от tanq Посмотреть сообщение
Постоянная проверка флага - это лишний overhead и к тому же не позволяет вытеснять низкий приоритет более высоким.
А каким боком проверка флага относится к прерыванию с более высоким приоритетом???
st_1 вне форума  
Непрочитано 07.08.2011, 15:13  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от st_1 Посмотреть сообщение
А каким боком проверка флага относится к прерыванию с более высоким приоритетом???
К примеру имеется 5 прерываний, кторые надо обрабатывать с учетом их приоритета. Как это можно сделать, если в обработчике прерывания делается только установка флага, а сами вычислния происходят в основой программе?
tanq вне форума  
Непрочитано 07.08.2011, 15:28  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

А что... на основную программу времени совсем нет???
st_1 вне форума  
Непрочитано 07.08.2011, 20:52  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Предполагается, что время есть. Но тем не менее, желаемое сдлеать не получится, потому что метод с проверкой флагов работает довольно тупо: проверяются флаги -› выполняется необходимое действие. Сооответствено, следующее действие будет выполняться после окончания предыдущего. Если же не умничать и события обрабатывать в самих обработчиках прерываний, то получается нормальная вытесняющая многозадачность, что и нужно. При этом более приоритетное прерывание будет начинать обрабатываться СРАЗУ, не дожидаясь окончания менее приоритетного.
tanq вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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