реклама на сайте
подробности

 
 
> Запуск одного таймера от другого, stm32f103
Quantum1
сообщение Aug 7 2014, 06:47
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



Добрый день!

Пытаюсь на камне stm32f103 сделать следующее.

Первый таймер считает, на процовой частоте к примеру, досчитав до определенного значения запускает еще два таймера в режиме одного импульса.
Основная цель что бы эти 2 таймера запускались точно в заданный момент и одновременно. А и еще, это должно происходить автоматически, т.е. не програмно - настроил таймеры запустил первый и забыл.

Пытаюсь с триггеры таймеров крутить, но черт возьми - ничего не выходит.

Если подскажите как это сделать буду крайне благодарен, желательно на spl*)

Спасибо!

Сообщение отредактировал Quantum1 - Aug 7 2014, 06:48
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 26)
Golikov A.
сообщение Aug 13 2014, 20:23
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



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

Long - не есть явный тип, там где int16 он 32, а где int32 - он 64. А сейчас 64 битные процессоры набирают обороты, того и гляди в 128 бит перейдет. В приведенном типе мне нравиться что битность указана явно 32 как бы он не называлсяsm.gif запись длиннее, факт, но 100% определена.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 13 2014, 20:40
Сообщение #17


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Golikov A. @ Aug 14 2014, 02:23) *
Long - не есть явный тип, там где int16 он 32, а где int32 - он 64. А сейчас 64 битные процессоры набирают обороты, того и гляди в 128 бит перейдет. В приведенном типе мне нравиться что битность указана явно 32 как бы он не называлсяsm.gif запись длиннее, факт, но 100% определена.

Можете привести пример, когда вам не хватит ширины константы 1UL? sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 13 2014, 21:00
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Уважаемые, тут недалеко есть аж два топика, где обсуждаются маски, библиотеки и биты)) (я сам там читатель)
Для запуска каскадной работы таймеров это рояля не играет - запустить можно, пример конфигурации привел.
ТС самостояельно перепишет все как положено в SPL.
Go to the top of the page
 
+Quote Post
Quantum1
сообщение Aug 14 2014, 02:49
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 4-09-12
Пользователь №: 73 381



спасибо огромное, сегодня попробую разобраться

Сообщение отредактировал Quantum1 - Aug 14 2014, 02:49
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 14 2014, 05:54
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Можете привести пример, когда вам не хватит ширины константы 1UL?

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

кстати проверил
((int32_t)1 << 31) - все честно, получаем минус максимум, или 0x80000000, а дальше нули, никаких неожиданностей если мы используем это как маску, если как число, то очевидное переполнение, что тоже ожидаемо.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 14 2014, 09:58
Сообщение #21


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Golikov A. @ Aug 14 2014, 11:54) *
наверное не смогу... может через 100 лет для каких-то машин где будет тип экстралонг... я лично уверен что мои программы проработают не меньшеsm.gif...

Ну, для экстралонга явное (uint32_t) тем более не поможетsm.gif
Цитата(Golikov A. @ Aug 14 2014, 11:54) *
кстати проверил
((int32_t)1 << 31) - все честно, получаем минус максимум, или 0x80000000, а дальше нули, никаких неожиданностей если мы используем это как маску, если как число, то очевидное переполнение, что тоже ожидаемо.

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

Цитата(adnega @ Aug 14 2014, 03:00) *
Уважаемые, тут недалеко есть аж два топика, где обсуждаются маски, библиотеки и биты)) (я сам там читатель)

Всё, всё, уходим wink.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 14 2014, 10:13
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



уходя крикну в закрывающуюся дверьsm.gif

проблемы со сдвигом в права
(0x80 >> 1)
если компилятору стукнет что это знаковый тип, то вместо ожидаемых 0x40 будет 0xC0
а если его по какой то причине зарубит сделать арифметический сдвиг для знакового
то 0x81 может переделать в 0xC1. но как добиться последнего я не очень в курсе, это если попросить разделить на 2, то он так может сделать....

но на самом деле букв в компутере дофига, и лишние UL никому не помешаютsm.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 16 2014, 09:32
Сообщение #23


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Golikov A. @ Aug 14 2014, 00:23) *
Long - не есть явный тип, там где int16 он 32, а где int32 - он 64. А сейчас 64 битные процессоры набирают обороты, того и гляди в 128 бит перейдет.

вы бы лучше стандарт почитали!
например на win64 и int и long остались 32 битными! а вот size_t и int_ptr_t уже 64 битные.


Цитата
проблемы со сдвигом в права
(0x80 >> 1)
если компилятору стукнет что это знаковый тип,

в данном случае не стукнет, по многим причинам. смотрите стандарт sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 17 2014, 04:53
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а вы только под win пишите?
и как называется 64 битный целый тип?
какой из стандартов вы предлагаете читать?
это был гипотетический пример, потому что было лень писать много нулей
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 17 2014, 10:55
Сообщение #25


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Golikov A. @ Aug 17 2014, 08:53) *
а вы только под win пишите?
и как называется 64 битный целый тип?
какой из стандартов вы предлагаете читать?
это был гипотетический пример, потому что было лень писать много нулей

не только! а win привел как пример того что разрядность целого типа слабо зависит от разрядности процессора! Для 64 битного линукса кстати long - 64 битный.
64 битный целый тип на сегодня - long long, но лучше конечно использовать stdint.h
стандарт - С99 например, или новый С11
про пример - я же писал по многим причинам! одна из них - шестнадцатеричные константы считаются unsigned.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 17 2014, 14:02
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну так и я о том же...
если написано int32_t - то это 32 бита очевидно, понятно, предсказуемо. А если long или int - то тут как повезет...

в остальном, возможно я уже дую на воду, но тема не об этом...
Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 17 2014, 14:38
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Golikov A. @ Aug 17 2014, 18:02) *
в остальном, возможно я уже дую на воду, но тема не об этом...

Может, нужно создать тему на эту (типы данных) тему?
Я б накидал вопросов на подумать в такой ветке))
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016