189 похожих чатов

Всем привет, вопрос по stm32f407vgt и таймеры, максимум получилось выжать

с таймера скорость срабатывания прерывания 848кгц. Частота плл 168 МГц, как-нибудь можно до 1 МГц дотянуть частоту?

В самом прерывании у меня gpiod->odr ^= pin_12

Неужели больше не получится выжать?

21 ответов

23 просмотра

Должно быть больше. Таймер тактируется правильно, там никаких делителей нет между ним и pll?

а для чего такой кекс? почему не выход с таймера в порт?

Alex Smirnov
Должно быть больше. Таймер тактируется правильно, ...

Вроде нет, брал настройки проекта с куба, и пробовал делать на spl, результат одинаковый

ри-си фрактал джаби чат 𓆏
Вроде нет, брал настройки проекта с куба, и пробов...

Тогда странно. Мб прерывание действительно так долго отрабатывает, тогда попробуйте сделать глобальную переменную и в неё тикать +1 каждое прерывание, и только на каждый 10 тик, например, дергать пин. И измерить частоту, частота прерываний будет в 10 раз выше А если надо просто постоянный ШИМ, то действительно, проще запустить таймер и выходы вывести наружу, и пусть щёлкает себе

Alex Smirnov
Тогда странно. Мб прерывание действительно так дол...

Вы про то, что скорость переключения ноги будет в 10 раз меньше?

ри-си фрактал джаби чат 𓆏
Вы про то, что скорость переключения ноги будет в ...

Про то, что он в прерывании будет не ногу дергать, что мб долго для него, а просто писать в регистр, где эта переменная лежит, и дергать только иногда, если это его ускорит, то и правда быстрее в прерывании дергать не выйдет

Alex Smirnov
Про то, что он в прерывании будет не ногу дергать,...

Хм, тогда остаётся только pwm? Почему тогда он быстрее будет? Там тоже придется дергать ножками же

ри-си фрактал джаби чат 𓆏
Хм, тогда остаётся только pwm? Почему тогда он быс...

прерывание это сигнал сохранние контекста обработка и восстановление тактов 80 займет

ри-си фрактал джаби чат 𓆏
Хм, тогда остаётся только pwm? Почему тогда он быс...

Он в прерывании не делает ничего, его один раз запустил и он дёргает ногами Только выходы таймеров не на каждой ноге есть и не всех таймеров. Так что если уже готовая плата - не факт, что вам повезет)

Alex Smirnov
Он в прерывании не делает ничего, его один раз зап...

У меня stm32f407 discovery плата, на ней тренируюсь

ри-си фрактал джаби чат 𓆏
У меня stm32f407 discovery плата, на ней тренируюс...

Ну вот откройте в кубе конфиг, если на нужной ноге есть какой нибудь выход таймера, то норм

Alex Smirnov
Он в прерывании не делает ничего, его один раз зап...

Так как тогда данные класть? Есть он все время молотит ) и в прерывание не заходит. Фишка же в том, что бы на clk положить данные data и их передать на скорости 1 мегабит , ну и принять. Я по таймерам пока профан, поэтому столько вопросов Поэтому начал с того, что попытался выжать 1 мегабит с ножки.

ри-си фрактал джаби чат 𓆏
Так как тогда данные класть? Есть он все время мол...

Это уже сложнее. Наверное, как то таймер вовремя включать, когда данные готовы и выключать, когда всё отправлено... Ща мб кто то адекватнее подскажет

ри-си фрактал джаби чат 𓆏
Так как тогда данные класть? Есть он все время мол...

скорость gpio максимальную поставили? и можно еще оптимизацию включить

Alex Smirnov
Это уже сложнее. Наверное, как то таймер вовремя в...

Я так и делал, только для маленьких скоростей:)

ри-си фрактал джаби чат 𓆏
Да, gpio speed 100mhz. Оптимизацию кода?

у вас какой код в прерывании? только переключение состояния ноги и все?

Roman
у вас какой код в прерывании? только переключение ...

Проверка, что произошло прерывание tim_it_update. Переключение состояние ноги и очистка бита прерывания. If(tim_getitstatus(tim10, tim_it_update) != reset) { Gpiod->odr ^= pin12; Tim10->sr &= ~ 0x0001; }

ри-си фрактал джаби чат 𓆏
Проверка, что произошло прерывание tim_it_update. ...

Тут надо все быстро делать,в функции чтения отключать всякие проверки,использовать bit banding для записи,а то вот у вас сброс в статус регистре бита-это уже несколько операций

Roman
Тут надо все быстро делать,в функции чтения отключ...

Если убрать даже проверку установки флага, то скорость никак уже не меняется

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта