|
Без прерываний |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 41)
|
Jul 27 2016, 12:46
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(Obam @ Jul 27 2016, 12:42)  А по-яснее? Включить или запустить? запустить с обновленным счетчиком
|
|
|
|
|
Jul 27 2016, 13:22
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(Obam @ Jul 27 2016, 13:13)  Глава 16.3.11 (стр.442 из CD00171190.pdf) не подходит? спасибо))) как раз документацию искала)) сейчас засяду
Сообщение отредактировал Ekka - Jul 27 2016, 13:22
|
|
|
|
|
Jul 27 2016, 14:19
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(Obam @ Jul 27 2016, 13:58)  "Читала про синхронизацию таймеров и источник их тактирования." - а это тогда откуда? Просто из статей.
|
|
|
|
|
Jul 28 2016, 06:45
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(Obam @ Jul 27 2016, 14:27)  Ё-моё, как будто первый раз замужем (: О_О"
|
|
|
|
|
Jul 28 2016, 08:42
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(uriy @ Jul 28 2016, 07:31)  Слыхал что на заводах из-за разделения труда встречаются такие проблемы. Разработчик схемы ничего не знает о микроконтроллере, кроме того что у него есть GPIO и пины питания. В итоге разработчиками ПО под контроллер приходится делать ШИМ на GPIO, перекидывать аналоговые сигналы на входы АЦП и прочая несуразица. Похоже тут как раз такой случай. Хм... у меня просто есть симисторный регулятор. У него есть пин управления и пин - детектора фазы. Организовать регулирование мощности с прерываниями и проч. - было уже сделано, работало прекрасно. Но есть новая задача. Сделать то же, но без прерываний. Вот и думаю.
|
|
|
|
|
Jul 28 2016, 14:30
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Ребята, не могу таймер 2 канал 2 настроить на шим... у него вообще есть такая возможность? может он суперособенный? так настаиваю ШИМ Код void TIM2_Cfg() { TIM_TimeBaseInitTypeDef tim_struct; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); tim_struct.TIM_Period = POWER; tim_struct.TIM_Prescaler = 100; tim_struct.TIM_ClockDivision = 0; tim_struct.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &tim_struct); TIM_ClearITPendingBit(TIM2,TIM_IT_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); }
void TIM2_CH2_PWM_Cfg() { TIM_ARRPreloadConfig(TIM2,ENABLE); TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); TIM_OCInitTypeDef pwm; TIM_OCStructInit(&pwm); pwm.TIM_Pulse =500; pwm.TIM_OCMode = TIM_OCMode_PWM1; pwm.TIM_OutputState = TIM_OutputState_Enable; pwm.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM2, &pwm); TIM2->CCR2=TIM2->ARR/2; }
//сама нога PB3 void GPIO_Cfg() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //откл JTDI
GPIO_InitTypeDef c; c.GPIO_Mode = GPIO_Mode_AF_PP; c.GPIO_Pin = CONTROL_Pin; c.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(PORT_CONTROL_Pin, &c); }
Сообщение отредактировал Ekka - Jul 29 2016, 08:40
|
|
|
|
|
Aug 3 2016, 09:00
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Ekka @ Aug 3 2016, 14:42)  Народ)) Кто-то использовал USB на МК stm32f105? Куда хоть копать-то? В инете почти ничего именно по этому мк нет( А чем отличается USB на МК stm32f105 от USB на любом другом МК? И что мешает взять пример USB-стека от любого другого МК и адаптировать его под Ваш МК, переписав слой абстрагирования от железа (HAL)? Юзермануал на железо USB-контроллера у Вас имеется. Откройте IAR, с ним идёт куча примеров под разные МК. В том числе и с USB-стеками. Там точно есть USB-стеки с HAL для МК NXP. Возможно есть и под STM. HAL-уровень в USB-примерах IAR это собственно один файл usb_hw.c
|
|
|
|
|
Aug 3 2016, 14:14
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(Ekka @ Aug 3 2016, 16:43)  …вылетает в HardFault_Handler() ??? что это вообще за штука такая Даже не знаю: смеяться или …
CortexM3_More_Than_A_Core.pdf ( 355.4 килобайт )
Кол-во скачиваний: 568 - вот для посветления
--------------------
Пролетарий умственного труда.
|
|
|
|
|
Aug 4 2016, 08:53
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(jcxz @ Aug 3 2016, 15:03)  Да уж.... Может Вам пока поупражняться со светодиодами - позажигать-гасить? Или даже замахнуться на UART?!!! Но USB......  это да, не отрицаю. Но хоть сдохни, надо. Трудно дается..((( Потуплю еще немного тут) ноги DP и DM должны быть как AF? а ID, SOF - на вход. VBUS - на выход?
|
|
|
|
|
Sep 7 2016, 08:33
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Здравствуйте, снова пишу сюда. Может, кто-то сталкивался с такой штукой. Пытаюсь работать с FATFS, монтирую флешку. Непонятка в следующем: если вызываю функцию FATFS единожды в main в while(1){} - все работает. Пытаюсь по-человечески перенести в прерывание по кнопке - виснет. функция, которую вызываю в цикле мэина единожды: Код RESULT_MOUNT=f_mount(&FileSystem, "0", 1); все нормально, возвращает FR_OK. То же вызываю в прерывании по кнопке - зависает. В чем может быть проблема? О_О
Сообщение отредактировал Ekka - Sep 7 2016, 08:59
|
|
|
|
|
Sep 7 2016, 13:33
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(jcxz @ Sep 7 2016, 11:06)  А с чего Вы решили что эти функции могут вызываться из ISR??? Скорей всего они даже не могут вызываться из разных задач ОСРВ без спец. обёрток, обеспечивающих сериализацию. Про ISR даже речи быть не может. Наиболее правильно все функции FatFS вызывать из одной задачи ОС. Но я не использую никакую ОС. Объясните, пожалуйста, по-подробнее, что Вы имели ввиду) Т.е. они у меня тут только в мэине и будут работать?
|
|
|
|
|
Sep 8 2016, 06:29
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(jcxz @ Sep 7 2016, 16:54)  Конечно. Спасибо за ответы)
|
|
|
|
|
Sep 29 2016, 08:28
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Снова привет всем. Простите, что все до кучи в одной теме, но вопрос очень непонятный. Настраиваем ДМА с АЦП через Куб. На 4 канала. В чем вопрос: в инете говорится, что запускать ДМА с АЦП надо примерно так: Код HAL_ADC_Start_DMA(&hadc1, (uint32_t*)dmaBuf, (uint32_t)dmaBufSize*2); Почему вдруг *2 ??? При таком запуске ДМА благополучно лезет в соседние массивы и пихает туда то, что забрал с АЦП. Однако если запустить так: Код HAL_ADC_Start_DMA(&hadc1, (uint32_t*)dmaBuf, (uint32_t)dmaBufSize); заполняется либо полмассива, либо часть. В результате не могу нормально усреднить значения. Может кто-то знает, в чем моя проблема? Как надо правильно запускать ДМА? Или, может, у меня какая-то настройка отсутствует? У меня уже глаз замылился с этим ДМА.
|
|
|
|
|
Sep 30 2016, 11:06
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Вопрос с ДМА снят) Разобрались. Возник другой вопрос. Может, конечно, тоже вопрос не из умных, но можно ли как-то заставить FATFS работать в прерывании обычного таймера? Она же в прерываниях, вроде не работает.
Просто у меня в чем беда: несчастный триак работает на прерываниях (плохо, конечно, не отрицаю) и если ФатФС тормозит в мэине - лампочка тоже моргает, импульсы нарушаются. Может, кто умный/опытный что посоветует?
Засада еще в том, что FreeRTOS взять пока не могу((
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|