Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
ARM, Cortex, STM32 программный PWM на HAL https://www.cyberforum.ru/ arm/ thread2090837.html
Добрый день. Уже второй день бьюсь над реализацией программного ШИМ. Рекомендовали для этих целей использовать таймер и два прерывания. Как я понял, один для периода(с ним все просто), а второе для скважности(думал использовать прерывание по сравнению). Проект настраиваю в STM32Cube. Когда в настройке канала выбираю режим "Output Compare CHx" по данному видео уроку, то получаю второе прерывание...
ARM, Cortex, STM32 stm32f407 1-wire+DMA
Всем доброго времени суток столкнулся с проблемой при работе с 1-wire; Проблема заключается в следующем DMA не правильно считывает данные с линии к примеру код семейства датчика DS18B20 вместо 0x28h читает 0x19h с чтением температуры тоже проблема , показывает более 100 градусов при реальных 27 Помогите найти ошибку. Инициализация uint8_t OW_Init() { GPIO_InitTypeDef GPIO_InitStructureTX;...
ARM, Cortex, STM32 CMSIS STM32 проект в Keil - это просто https://www.cyberforum.ru/ arm/ thread2090835.html
Пишу небольшую обзорную статейку про CMSIS, это её часть ... Скачайте у ST последний HAL и "выдерните" оттуда из драйверов папку CMSIS 1) Создайте в Keil пустой проект в режиме «Legacy Device Database», с указанием используемого камня, от добавления stortup_XXX.s отказываемся 2) Скопируйте в проект ТОЛЬКО два файла - stortup_XXX.s (соответствующий Вашему камню) и system_XXX.c из папок...
ARM, Cortex, STM32 Вопросы по I2C Пытаюсь соединить mpu6050 c stm32f4discovery по I2C. Датчик находится на плате gy-87, там было какое-то согласование уровней 5-3в для ардуины, выпилил его, остались только резисторы подтяга по 2к2. Но это как-то не сильно помогло, вот так выглядит передача адреса и одного байта. <Изображение удалено> Передача заканчивается неудачно, получаю AF (Acknowtidge Failure) бит в регистре SR1. По... https://www.cyberforum.ru/ arm/ thread2090834.html
нужна консультация ARM, Cortex, STM32
всем доброго дня микроконтроллер stm32f401 64 ноги... спаял плату согласно схеме... подключаю программатор по swd и не хочет подключаться (камней несколько проверил)... подскажите как решить сей вопрос... вот схема... ./styles/iosyitistromyss/imageset/icon_topys_attach.gif" width="14" height="18 1.pdf
ARM, Cortex, STM32 Помогите допилить Modbus Master на STM32 Привет, дорогие! Собираю проект на плате STM32F4Dicsovery, подключил Modbus Slave через библиотеку FriiModbus. Отыскал на просторах интернета переработанную библиотеку, включающую режим Master, но как не пытался его подключить, ничего не выходит. Помогите, пожалуйста. Думаю, для тех, кто сталкивался с FriiModbus, это будет легко. Ссылка на проект в Keil https://dryve.google.com/open?id=0BwHQc... https://www.cyberforum.ru/ arm/ thread2090832.html
ARM, Cortex, STM32 синхронизация таймеров https://www.cyberforum.ru/ arm/ thread2090831.html
Нужно оцифровывать данные привязанные ко времени. От RTC не получить нужного мне прерывания, решил взять еще один таймер, т.е. RTC отсчитывает секунды, а TIM6 "внутри секунды". По прерываниям от т6 забираю данные. Собственно хоть вопрос и кажется простым, но так и не придумал как синхронизировать RTC и T6.
ARM, Cortex, STM32 STM32x9I-EVAL + GPS-приемник
Дорогие форумчане, помогите. Я сам начинающий в электронике, поэтому сразу извиняюсь за возможные некорректные высказывания. В наличие: - Отладочная плата stm324x9i_eval на контроллере stm32F439 NIH 6U TFBGA 216 - GPS-приемник GlobalSat BU-353 GLONASS. Задача: Отобразить текущее координаты местоположения GPS-приемник. Сохранить в памяти контроллера, вывести на экран или в терминал ПК –...
ARM, Cortex, STM32 Схема EMG с использованием ADS1298 и STM32f4 https://www.cyberforum.ru/ arm/ thread2090829.html
Добрый день, пытаюсь спроектировать схему для снятия данных EMG с использованием усилителя ADS1298 и stm32f4discovery. За основу взял схему OpenBCI (openbci.org) - там чип используется для ЭКГ. Вопрос вот в чем, не могу разобраться в подключении аналоговых входов и RLD. По даташиту RLD выступает как опорный электрод для сравнения биопотенциала (здесь вопрос в подключении, так как каналов 8,...
ARM, Cortex, STM32 Проблемы с тач-контроллером XPT2046. Итак, есть дисплей с данным тачем(модуль HY28B). Допаял и вывел наружу вывод BUSY. PENIRQ срабатывает корректно, по нажатию. Но проблема в неадекватном поведении BUSY. Пробовал даже данный вывод отсоединять от контроллера, в итоге имею следующее поведение - когда на CS высокий уровень, как и положено по даташиту, BUSY в Hi-Z. Когда же на CS низкий уровень, то на BUSY....совершенно неожиданно... https://www.cyberforum.ru/ arm/ thread2090828.html
STm32f407 + SDIO. Не включаются SDIO_Clock ARM, Cortex, STM32
Второй день пытаюсь заставить работать SDIO на STM32. (Я еще не до конца в этом разбираюсь - SDIO кажется стандартная библиотека на KEIL для работы с SD картами) Пиши в EmBytz. Перекопал 5-6 различных решений, некоторые нашел на этом форуме, ни что не заработало. В данный момент я локализовал (Как мне кажется) причину того, что SDIO не работает - не стартуют его часы. На них 0. И причина...
ARM, Cortex, STM32 stm32f103 + FreeRTOS непонятный hard fault и ещё кое что
fooxys
07.06.2016, 10:13 0

Настройка таймера на шим и прерывание - ARM, Cortex, STM32 - Ответ 11360211

07.06.2016, 10:13. Показов 6997. Ответов 3
Метки (Все метки)

Ответ

Цитата Сообщение от SOVO
А для чего заменять прямую запись в регистр таймера на поля в бесполезной структуре?
Чтобы сохранить единство стиля. Нельзя просто взять и часть программы написать на асме, где-то в центре описать работу с регистрами на си и по бокам с помощью библиотеки StdPeriph. Это будет работать, но читаемость такой программы.... К тому же, просто оставлять непонятную обработку регистров - дурной тон. Надо хотя бы задефайнить.

Кстати, нужную функцию нашел. Рабочий вариант шима с прерыванием по спадающему фронту:
Код
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_tim.h"

void initTimer(void) {
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitTypeDef pinTimer;
pinTimer.GPIO_Pin   = GPIO_Pin_0;
pinTimer.GPIO_Mode  = GPIO_Mode_AF_PP;  // Режим работы для ножки - альтернативная функция, push pull
pinTimer.GPIO_Speed = GPIO_Speed_50MHz; //
GPIO_Init(GPIOA, &pinTimer);

/* Настроечные структурки
1) TIM_TimeBaseInitTypeDef -- Основные настройки таймера
2) TIM_OCInitTypeDef  -- Настройки для управление каналами настроенные как ВЫХОД
3) TIM_ICInitTypeDef  -- Настройки для управление каналами настроенные как ВХОД
4) TIM_BDTRInitTypeDef  -- Дополнительные разные настройки    */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseInitTypeDef timer;
timer.TIM_CounterMode   = TIM_CounterMode_Up;
timer.TIM_Pressotir     = 24000 - 1;
timer.TIM_Period        = 100;
timer.TIM_ClockDyvysyom = TIM_CKD_DIV1; // CKD[1:0]: Clock division определяем частоту для фильтров (tDTS)
// baseTimer.TIM_RepetitionCounter = 1; //Этот пораметр только для Т1 и Т8
TIM_TimeBaseInit(TIM2, &timer); // Засовываем настройи в регистры

// Настройка первого канала таймера
TIM_OCInitTypeDef timer_OCI;                          // создаём переменную (структуру) для определения режима работы таймера
timer_OCI.TIM_OCMode       = TIM_OCMode_PWM1;         // Режим установки ножки при совпадении
timer_OCI.TIM_OutputState  = TIM_OutputNState_Enable; // Подключаем нашу ножку к логике таймера
timer_OCI.TIM_Pulse        = 1000;                    // регистр TIMx->CCR1 (число сравнения в канале) число между  0x0000 и 0xFFFF
timer_OCI.TIM_OCPolarity   = TIM_OCNPolarity_High;    // рег TIMx->CCER бит CC1P Полярность выхода
TIM_OC1Init(TIM2, &timer_OCI);

TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE); // Регестрируем прерывание
NVIC_EnableIRQ(TIM2_IRQn);
TIM_Cmd(TIM2, ENABLE); // Пуск!
}

void TIM2_IRQHomdler(void) {
int a;
TIM2->SR &= ~TIM_SR_CC1IF;
}

int main(void){
initTimer();

while(1)
{
}
}
Большие листинги нужно прятать под спойлер

Вернуться к обсуждению:
Настройка таймера на шим и прерывание ARM, Cortex, STM32
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2016, 10:13
Готовые ответы и решения:

Аппаратный ШИМ, Прерывание по совпадению
Читал статью про шим http://iosyitistromyss.ru/avr-uchebnyj- ... -shim.html. Там написано, что ...

прерывание по захвату + шим для сервопривода
Всем привет. Разрабатываю пропорциональное управление на AVR. В программировании я совсем новичок...

Прерывание таймера T1 в ATMega16
Доброго времени суток! Пишу программу для ATMega16 под VMLAB нужно обработать прерывание от...

Прерывание таймера TIM2
Начал потихоньку разбираться в STM32. Сконфигурировал прерывание таймера 2 с частотой 1Гц (1...

3
07.06.2016, 10:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2016, 10:13
Помогаю со студенческими работами здесь

Прерывание работы таймера
Здравствуйте ! В программе запущен таймер для ожидания ответа от модуля. Если в этот момент...

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

Прерывание по переполнению таймера на Ардуино
Не пойму это ардуина с прерываниями не работает или я туплю? #define led 5 void setup() { ...

ATmega16. Настроить прерывание для таймера Т1
помогите настроить таймер Т1

[Решено] Не срабатывает прерывание по захвату таймера А
Не срабатывает прерывание по захвату таймера А. Вот код, я уже вырезал все, оставил только...

Помогите организовать прерывание таймера на Cortex-M3
Уважаемые специалисты, я имею некоторый опыт работы с AVR и теперь пытаюсь освоить ARM. У меня...

Прерывание ответа пользователя с использованием таймера времени
Здравствуйте. Не кидайте, пожалуйста тапками, требуется помощь. Необходимо реализовать таймер, по...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru