Easyelectronics.ru

Электроника для всех
Текущее время: 29 май 2022, 08:27

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 18:18 
Заглядывает иногда

Зарегистрирован: 18 дек 2015, 16:02
Сообщения: 57
Хочу считать время в мкс сколько прошло с начала старта контроллера, поэтому надо на таймере настроить прерывание в 1 микросекунду, F_CPU = 2000000UL (2МГц), думаю использовать TIM4, тк в программе используется и UART (в доках к нему подключен TIM1) и SPI (к нему по докам подключен TIM2), компилирую SDCC поэтому нужна настройка регистрами


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 18:31 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1399
Цитата:
настроить прерывание в 1 микросекунду

Феерично! А сколько команд может выполнить твой контроллер за 1 микросекунду?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 18:42 
Заглядывает иногда

Зарегистрирован: 18 дек 2015, 16:02
Сообщения: 57
tonyk писал(а):
Цитата:
настроить прерывание в 1 микросекунду

Феерично! А сколько команд может выполнить твой контроллер за 1 микросекунду?


Да мне нужно таймстамп считать, у меня есть функция которая считает разницу по времени в мкс для обработки сигнала, период сигнала ~ 400...800 мкс


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 18:53 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 2034
Klaxons писал(а):
Хочу считать время в мкс сколько прошло с начала старта контроллера, поэтому надо на таймере настроить прерывание в 1 микросекунду, F_CPU = 2000000UL (2МГц), думаю использовать TIM4, тк в программе используется и UART (в доках к нему подключен TIM1) и SPI (к нему по докам подключен TIM2), компилирую SDCC поэтому нужна настройка регистрами


Частота 2 МГц ,
1 uS это один мегагерц :)

Почитайте описание контроллера сколько времени он тратит на переход по прерыванию и сами все поймете.

Повышайте частоту минимум до 16 МГц, ну а дальше все будет зависить от вашего обработчика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 19:30 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 7915
sed_alex, оно "феерично" совсем не потому, что процессор застрянет в вечном прерывании. Застрял и застрял, делов то.
Фееричность в самом подходе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 19:53 
Заглядывает иногда

Зарегистрирован: 18 дек 2015, 16:02
Сообщения: 57
sed_alex писал(а):
Klaxons писал(а):
Хочу считать время в мкс сколько прошло с начала старта контроллера, поэтому надо на таймере настроить прерывание в 1 микросекунду, F_CPU = 2000000UL (2МГц), думаю использовать TIM4, тк в программе используется и UART (в доках к нему подключен TIM1) и SPI (к нему по докам подключен TIM2), компилирую SDCC поэтому нужна настройка регистрами


Частота 2 МГц ,
1 uS это один мегагерц :)

Почитайте описание контроллера сколько времени он тратит на переход по прерыванию и сами все поймете.

Повышайте частоту минимум до 16 МГц, ну а дальше все будет зависить от вашего обработчика.


Выставил пределитель сисклока в 1 и включил всю периферию на эту частоту

Код:
    CLK_CKDIVR=0;
    CLK_PCKENR1=0xFF;
    CLK_PCKENR2=0;


Обработки такой

Код:
state = PinRead(GD0_PORT, GD0_PIN);
if (state == HIGH) {
    lolen = micros() - prevtime;
}
else {
    hilen = micros() - prevtime;
}
prevtime = micros();


На входе есть сигнал в модуляции ASK/OOK, период высокого уровня и низкого уровня порядка 800 и 400 микросекунд (+-10%), поэтому, чтобы определить, что это ожидаемый сигнал использую такую проверку, по факту micros() - это функция таймстампа , которое возвращает количество микросекунд (для меня это счетчик с прерыванием в 1us), прошедших с начала запуска программы, т.е. через 5 секунд после подачи питания вернет 5000000 микросекунд, так как мои сигналы с такими таймингами, то и нужна такая точность. К сожалению, ничего кроме stm8s003 использовать не могу, так как он находится на плате с приемником сигналов, а подпаяться к ногам приемника тоже нет возможности, тк посадка тесная


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 03 сен 2020, 21:28 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1399
u37 писал(а):
sed_alex, оно "феерично" совсем не потому, что процессор застрянет в вечном прерывании. Застрял и застрял, делов то.
Фееричность в самом подходе.

Это я назвал задуманное ТС фееричным. Но он нифига не понял из того, что мы тут ему написали. Он не способен воспринять ничего кроме того, что он себе надумал. Он ждёт от нас "да, братан! Круто! Только тут поменяй плюс на минус." Это не излечимо, к сожалению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 09:45 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 2352
Это нормально, здесь 90% таких как тс, а может 99%, просто не сразу заметно, но быстро выясняется
Отсюда мораль - только 8051, только хардкор


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 10:20 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 4302
Откуда: Vinnitsya
Почему бы нет. 72-мегагерцовая "лазерная пчёлка" такое отработает. Вроде бы.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 10:58 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 2352
Может быть, чтоб прикинуть пришлось бы такты посчитать, и это был бы уже другой разговор, после которого тс был бы уже другим человеком )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 11:01 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1399
vt340 писал(а):
Может быть, чтоб прикинуть пришлось бы такты посчитать, и это был бы уже другой разговор, после которого тс был бы уже другим человеком )

Даже таймер 8х51 умеет измерять длительность импульса! Не поверю, что таймер у СТМ8 не может сделать такое же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 11:35 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 2352
Ну вот отсылки к периферии мк, которая сама волшебно всё сделает, и привели к отношению к мк как к магии, за что боролись на то и напоролись )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 11:51 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1399
vt340 писал(а):
Ну вот отсылки к периферии мк, которая сама волшебно всё сделает, и привели к отношению к мк как к магии, за что боролись на то и напоролись )

МК в наше время- это в первую очередь периферия. Нужно изучать её, вникать, зачем сделан тот или иной режим, изучать примеры её использования.
Для моей покойной бабушки, успевшей до войны закончить второй класс церковно-приходской школы, сотовый телефон был волшебством. Она- честь и хвала ей!- ребёнком всю Войну отпахала в колхозе, поэтому никто в родне никогда над ней не смеялся за её незнание. А эти? Сидят дома, в тепле, все библиотеки Мира у них под рукой, и не хотят ни читать, ни думать. Короче, ты меня понял. Чуть материться не начал на таких как этот ТС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 12:39 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 2352
tonyk, ну какие библиотеки мира если это хобби, развлечение, игра
Кстати об играх - http://www.zachtronics.com/tis-100/ - вот с чего надо начинать )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 13:03 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1399
Цитата:
tonyk, ну какие библиотеки мира если это хобби, развлечение, игра

Это ничего не меняет. Сам подход к тому, что делаешь, в принципе, безтолковый. И отношение к людям, которых можно теребонить глупыми вопросами. Ты ведь на жизнь зарабатываешь не ответами на глупые вопросы на этом и других форумах, поэтому минимальное уважение к твоей персоне заключается в том, чтобы задавать тебе вопросов поменьше и посерьёзней. А то растратишь силы и время на глупости, и на серьёзные вопросы, ответы на которые будут интересны не только ТС, но и другим людям, уже не останется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 13:15 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 2352
tonyk писал(а):
И отношение к людям, которых можно теребонить глупыми вопросами.

А вот это тонкий момент с учётом контекста, глупые ли вопросы или глупые ответы )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm8s003 таймер с прерыванием в 1 микросекунду
СообщениеДобавлено: 04 сен 2020, 14:41 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 7915
"и на серьёзные вопросы"
Поверьте вашему опыту - на серьезные вопросы вы никогда не получите ответа, их вообще нет смысла задавать. А посему, их никто и не задает.


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


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


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

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


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

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

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