Easyelectronics.ru

Электроника для всех
Текущее время: 18 ноя 2018, 15:28

Часовой пояс: 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
Сообщения: 2477
Месседж для внутрифорумных поборников 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
Сообщения: 2477
Нет-нет, это не вовсе не к вам сообщение, и не над вами стёб :)) Просто на форуме появились "очэн балшые знатаки", рассказывающие как надо жить и зарабатывать "многа дэнэг" с HAL-ом. Вот к таким человекам и адресован тот пост. Пущщай они мозгами и раскидывают.


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

Зарегистрирован: 06 янв 2014, 17:52
Сообщения: 62
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
Сообщения: 5169
Gimran , хотите хоть чего-то добиться и не выглядить идиотом? Пересматривайте логику програмы, то что наляпано на аурдунье ущербно априори.
Даю подсказку -изучите сниппетсы F0(особливо таймеры), догадаетесь толк от вас будет...


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

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 65
Откуда: Омск
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
Сообщения: 202
Откуда: Киев
Да ему насколько я понял вообще нужен режим захвата и анализировать что там на ноге происходит. 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
Сообщения: 202
Откуда: Киев
попробуй таймер режим захвата + ПДП и в два буфера и на лету анализируй. Подбери частоту таймера чтобы не переполнялся и разрешение было достаточным. и все. 103 похуже там либо фронт либо спад.


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

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


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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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