Easyelectronics.ru

Электроника для всех
Текущее время: 19 сен 2018, 20:08

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 16:35 
Здравствуйте!

Зарегистрирован: 07 июл 2018, 15:29
Сообщения: 4
Доброго времени суток!

Занимаюсь перенесением кода приемника keeloq с ардуины на stm32.
экспериментирую на 32f103 и 32f407, использую KEIL и Cubemx(HAL).

Есть функция приема бита с платки SRX882 по прерыванию


Show В ардуиновском коде такая реализация:


В STM Этот код засовываю в прерывание на ноге приемника с настройкой rise\fall
Show код

Вопрос в следующем:
Как грамотно реализовать счетчик микросекунд? Таймером или привязать к регистру DWT_CYCCNT например?
В HAL есть только HAL_GetTick() для миллисекунд.
Как будут вместе работать таймер, использующийся в прерывании GPIO?

Исходники:

Show main


Show it.c


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 16:51 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2247
Месседж для внутрифорумных поборников HAL-отехнологии:
Ну-с, поклонники секты великих и богатых HALов, ну-с, давайте, покажите-ка, чему вы научились. А я посижу, поржу, посмотрю, как долго и через какую задницу вы будете осуществлять столь примитивную задачку :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 17:04 
Здравствуйте!

Зарегистрирован: 07 июл 2018, 15:29
Сообщения: 4
BusMaster писал(а):
Месседж для внутрифорумных поборников HAL-отехнологии


Вам бы постебаться)
я же не корчу из себя знатока приверженца HAL.
Начинать надо с чего-то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 17:11 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2247
Нет-нет, это не вовсе не к вам сообщение, и не над вами стёб :)) Просто на форуме появились "очэн балшые знатаки", рассказывающие как надо жить и зарабатывать "многа дэнэг" с HAL-ом. Вот к таким человекам и адресован тот пост. Пущщай они мозгами и раскидывают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 18:21 
Заглядывает иногда

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 61
Gimran писал(а):
Как грамотно реализовать счетчик микросекунд? Таймером или привязать к регистру DWT_CYCCNT например?


Используй DWT. Он встроен в ARM ядро. Считает sysclk. Точнее не бывает. Никаких ресурсов не требует.

Код:
// DWT tics in one microsecond
// for 168MHz: 168 000 000 / 1 000 000 = 168
// for 216MHz: 216 000 000 / 1 000 000 = 216
#define DWT_IN_MICROSEC (SystemCoreClock/1000000)

uint32_t DWT_Get_Current_Tick() {
    return DWT->CYCCNT;
}

uint32_t DWT_Elapsed_Tick(uint32_t t0) {
    if (DWT->CYCCNT > t0)
        return DWT->CYCCNT - t0;

    return (uint32_t) ((((uint64_t) 0x100000000) + DWT->CYCCNT) - t0);
}

void DWT_Init() {
    if (!(CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk)) {
        CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
#ifdef __CORE_CM7_H_GENERIC
        DWT->LAR = 0xC5ACCE55;  // added unlock access to DWT (ITM, etc.)registers
#endif
        DWT->CYCCNT = 0;
        DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
    }
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 07 июл 2018, 22:25 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4977
Gimran , хотите хоть чего-то добиться и не выглядить идиотом? Пересматривайте логику програмы, то что наляпано на аурдунье ущербно априори.
Даю подсказку -изучите сниппетсы F0(особливо таймеры), догадаетесь толк от вас будет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 09 июл 2018, 14:08 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 61
Откуда: Омск
HAL чаще всего требует неслабых познаний в работе ядра.
Например, некоторые примеры кода для HAL, собарные на том же HAL просто не работали. Это нормально, к сожалению. Заголовчные функции чаще всего приходится править, а порой и переписывать с нуля. И только потом это начинает работать быстро и качественно. Переносимость почему-то так же улучшается.
Частный пример - чтобы перенести код с кристалла STM32F7 на L4 мне потребовалось пара часов времени. Это в основном перечитывание Reference Manual'а по каналам таймеров, запросам DMA и мелочам типа особенностей работы нескольких каналов DMA в дуплексе. Ну и пересчёт тактового генератора.
Код HAL... давайте не будем о грустном. Для себя - пишу на CMSIS и регистрах. Это куда как быстрее и компактнее.

Микросекундный таймер для F4 - несомненно DWT. Он же точно так же работает на L4. Отличий нет никаких.

Отладка кода без HAL в RAM, с сетью, консолью, экраном, RTOS и прерываниями - возможна. С HAL - 50/50.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 09 июл 2018, 23:53 
Заглядывает иногда

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 119
Откуда: Киев
Да ему насколько я понял вообще нужен режим захвата и анализировать что там на ноге происходит. DWT это часть ядра он вообще везде работает одинаково, там где есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 13 июл 2018, 20:49 
Здравствуйте!

Зарегистрирован: 07 июл 2018, 15:29
Сообщения: 4
MasterElectric писал(а):
Да ему насколько я понял вообще нужен режим захвата и анализировать что там на ноге происходит. DWT это часть ядра он вообще везде работает одинаково, там где есть.

именно это мне и нужно.

Реализовал на DWT - все заработало. Спасибо всем что направили.

не порекомендуете где почитать про реализацию работы приема, условно не стандартных данных?
тот же keeloq по даташиту принципиально понятно что и как, а вот с реализацией трудновато.
Вообще есть задумка сделать универсальный приемник для различных протоколов всяких китайских брелков, вроде того же EV1527.
Но как ни гуглю - 99% статей начинается с "берем ардуино и библиотечку".

про HAL - прямо скажу, я пока туповат, чтобы полностью осознать плюсы и минусы его использования.
По нему много мануалов, и это хорошо.
длинные несуразные определения типа и куча мусора после куба - то что не нравится даже начинающему типа меня.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 13 июл 2018, 23:18 
Заглядывает иногда

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 119
Откуда: Киев
попробуй таймер режим захвата + ПДП и в два буфера и на лету анализируй. Подбери частоту таймера чтобы не переполнялся и разрешение было достаточным. и все. 103 похуже там либо фронт либо спад.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 14 июл 2018, 01:31 
Старожил
Аватара пользователя

Зарегистрирован: 18 фев 2014, 11:27
Сообщения: 211
только в прошлую пятницу на меге 8 за два часа написал прием с hcs200, на таймере с захватом. ловит преамбулу и 66бит


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 14 июл 2018, 09:58 
Здравствуйте!

Зарегистрирован: 07 июл 2018, 15:29
Сообщения: 4
mishany984 писал(а):
только в прошлую пятницу на меге 8 за два часа написал прием с hcs200, на таймере с захватом. ловит преамбулу и 66бит

Буду очень признателен если покажете свою реализацию.
то что на атмеге даже хорошо - больше страданий при переводе на стм - больше опыта)
на крайняк парочка восьмых тоже есть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 14 июл 2018, 10:11 
Старожил
Аватара пользователя

Зарегистрирован: 18 фев 2014, 11:27
Сообщения: 211
да пжлст вот atmel studio7
Необходимо только таймер на захват настроить и предделитель расчитать как выше советовали, делов то...
С логическим анализатором(на крайний случай ослик) этот процесс куда проще будет.
Можно проще, на хале таймер настроить, прерывание по фронту или спаду и в прерывании переключать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103/F407 счетчик микросекунд
СообщениеДобавлено: 03 авг 2018, 15:52 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 128
Gimran писал(а):
Но как ни гуглю - 99% статей начинается с "берем ардуино и библиотечку".

А расковырять библиотечку, не?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: hd44780, vasiliuz


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB