Easyelectronics.ru

Электроника для всех
Текущее время: 26 май 2019, 20:29

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 21 ] 
Автор Сообщение
 Заголовок сообщения: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 13:05 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
на микрсекунды

_________________
Береги планету.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 13:34 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5818
500 330. Каждому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 13:47 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3113
Микросекундные задержки в медленных МК завсегда делались на NOP-ах или на циклах декремента... Дольше будешь таймер настраивать и запускать, да отлавливать событие.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 14:05 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
ну тогда милисекундную
на TIM4

_________________
Береги планету.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 14:28 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 648
Откуда: Германия
https://github.com/dev26th/electronic_l ... temtimer.c

Там кварц 12 МГц, поэтому TIM2. Для 16 МГц можно и TIM4 использовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 14:57 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
о у меня есть такая электронная нагрузка, спасибо.

_________________
Береги планету.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 15:19 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 925
Микросекунда на нопах для Stm8S003 в режиме LSI:
Код:
#define delay_1us() _asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");_asm("nop");


Милисекунда на TIM4:

Константы и флаги:
Код:
unsigned char const TIM4_PSCR=0x07;
unsigned char const TIM4_PERIOD=124;
bool flag_end=1;


Конфигурирование таймера:
Код:
TIM4->PSCR = TIM4_PSCR;
TIM4->ARR = TIM4_PERIOD;
TIM4->SR1 &=~TIM4_SR1_UIF; //сброс флага прерывания TIM4_ClearFlag(TIM4_FLAG_UPDATE);    
TIM4->IER   |= TIM4_IER_UIE; //прерывание включено
TIM4->CR1 |= TIM4_CR1_CEN; // запустить таймер
_asm("rim");


Процедура счетчика:
Код:
void TimingDelayDec(void) // прерывание 1ms
{
  if (TimingDelay != 0x00)
          { TimingDelay--;}
else
{flag_end=0;}
}


В обработчике прерывания:
Код:
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
{
   
/* Update remaining Delay every 1 ms interrupt*/
  TimingDelayDec();
  TIM4->SR1&=~TIM4_SR1_UIF;

}


Ну и соответсвенно не забыть прописать в обработчике, что функция внешняя


flag_end=0 - Счет закончился, проверяется где либо в главном цикле.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 15:48 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
спасибо
ещё варианты

я не нашёл сколько тактов тратится на прерывание от счётчика, где это написано ?
я примерно понимаю он там все РОН сохраняет, затем выгружает.

_________________
Береги планету.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 17:30 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4066
Откуда: Кемеровская область, Киселевск
А зачем тебе? ты понимаешь что ты порешь чушь? Не надо колхозить, это не эстетично.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 28 фев 2018, 17:43 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 925
Количество тактов - не понимаю для чего надо ?
При таком построении как описано выше функция не блокирует основной цикл, но как следствие посчитать какая именно будет задержка при крайнем срабатывании прерывания - не представляется возможным, так как это зависит от точки где проверяется флаг и сколько тактов осталось до самой проверки. Если нужна точность (частотомеры и прочая фигня) функция будет другой.
P\S Что хочешь сделать то ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 01 мар 2018, 15:39 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 350
Откуда: Новый Уренгой
Может я чегото не понял, но библиотеки тут не нужны вовсе.
Код не на си, но смысл понятен.

В прерывании таймера выполняется это
Код:
   interrupt TIM4update
TIM4update
   tnz      cntr        ;  cntr = 0 ?
   jreq   tiout         ;  если да выходим
   dec      cntr        ;  иначе cntr = cntr -1
tiout
   bres   TIM4_SR, #0   ;  cбросим признак прерывания
   iret


Функция delay
Код:
delay   
   mov      cntr,   #10   ;  запишем количество тактов таймера для паузы
wait
   tnz      cntr   ;  cntr = 0 ?
   jrne   wait     ;  если нет ждем дальше (go to wait)
   ret             ;  cntr = 0, значит 10 тактов таймера выждали, выходим


Использование
Код:
   call delay   ; ждем 10 тактов


P.S. Кстати в многозадачности использую именно этот подход.
(когда один процесс ждет задержки, а другие выполняются. Например, выход шим, мигание светодиодом, опрос клавиатуры)

_________________
реверс STM8


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 04 мар 2018, 13:17 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
ладно,спасибо.

_________________
Береги планету.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 15 фев 2019, 21:37 
Только пришел

Зарегистрирован: 07 фев 2019, 16:13
Сообщения: 22
selevo писал(а):
на микрсекунды


Приветствую категорически !
STM8S003F3P6
Настройки для IAR+ STM8S/A Standard Peripherals Library 2.0
настройка компилятора в режиме максимальной оптимизации по размеру.

Функция void Delay (u32 a) {while (a) {IWDG->KR= 0xAA;a--;}}
При 16 мегагерц.

Delay(1) = 3 микросекунды
Delay (5) = 10 микросекунд
Delay (10) = 18 микросекунд
Delay(50) = 83 микросекунды
Delay (100) = 160 микросекунд
Delay (300) = 510 микросекунд


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 15 фев 2019, 23:12 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3734
Откуда: КЧР, поселок Нижний Архыз
Нельзя абдуринщиков подпускать к микроконтроллерам! Вместо нормального решения начинают колхозить любимые из абдурины delay'и.
А про автоматное программирование и слыхом не слыхивали...
vazovec писал(а):
Настройки для IAR+ STM8S/A Standard Peripherals Library 2.0

Кто бы мог подумать, что калокубщики и до STM8 доберутся?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 19:35 
Только пришел

Зарегистрирован: 07 фев 2019, 16:13
Сообщения: 22
Eddy_Em писал(а):
Нельзя абдуринщиков подпускать к микроконтроллерам! Вместо нормального решения начинают колхозить любимые из абдурины delay'и.
А про автоматное программирование и слыхом не слыхивали...
vazovec писал(а):
Настройки для IAR+ STM8S/A Standard Peripherals Library 2.0

Кто бы мог подумать, что калокубщики и до STM8 доберутся?


Приветствую категорически !

Заранее простите мне мою тёмность и неосведомлённость в вопросах некоторых действующих "политических" битв и "войнушек" (типа капуцины против мармазеток). Про абдуринщиков вроде догадался, это те кто примкнул к комьюнити проекта Ардуино. Поправьте если не так понял.
Но вот кто такие калокубщики ??? Прямо теряюсь в догадках. Просветите.......

Может это решение из библиотек от STM и не нормальное вовсе, но оно проверено и точно работает. Автор топика попросил.
Я ему предложил конкретное решение.
А вы любезный как я вижу не предложили ничего. Ведь автор топика пустил запрос ещё 28 февраля 2018 года. 2018 года !!!
Смотрю в этой теме отметился и наш лорд с острова Пафос. И опять ноль.

Дружище, покажите класс автоматного программирования ..... предложите, очень просим....

А то что-то меня начинают терзать смутные сомненья... что местные так называемые "старожилы" это непризнанные юнные россиянские "вдушепоэты" "чегеварщики" "стендаперы" "протестантисты" "политессектанты". :-))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 20:38 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3113
Если бы вы читали тему, видели бы, что там уже ответ был дан несколько раз.

У новичков, перешагнувших границу первых своих поделок, как раз и появляется столь категоричное суждение.
Эффект Даннинга-Крюгера: найдите себя на этом графике

Изображение

Кстати, автор темы - Серево - он известный и прославленный болтун-давальщик 500 рублей. Вы просто не знакомы с его стилем "вопросов" и еще спешите "помочь". На деле Серево пишет посты для создания ветра в сети. Ну ниче, вы еще познакомитесь с ним :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 21:01 
Только пришел

Зарегистрирован: 07 фев 2019, 16:13
Сообщения: 22
BusMaster писал(а):
Если бы вы читали тему, видели бы, что там уже ответ был дан несколько раз.

У новичков, перешагнувших границу первых своих поделок, как раз и появляется столь категоричное суждение.
Эффект Даннинга-Крюгера: найдите себя на этом графике

Изображение

Кстати, автор темы - Серево - он известный и прославленный болтун-давальщик 500 рублей. Вы просто не знакомы с его стилем "вопросов" и еще спешите "помочь". На деле Серево пишет посты для создания ветра в сети. Ну ниче, вы еще познакомитесь с ним :)))


Приветствую категорически !
Конкретные предложению от других участников форума видел. Ваших с Эдиком нет.

"Микросекундные задержки в медленных МК завсегда делались на NOP-ах или на циклах декремента... Дольше будешь таймер настраивать и запускать, да отлавливать событие."

Потому что это, что угодно, но только не конкретное предложение.

"Внутриполитические" местные разборки мне не известны и я в них не участвую. :-)

Но это звучит устрашающе "прославленный болтун-давальщик 500 рублей." :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 21:17 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3113
Да вы, сударь, болтун! :)))) Как раз подстать нашему Серево.
Если вы не знаете, что такое NOP и декремент - вы у нас не приживетесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 21:48 
Только пришел

Зарегистрирован: 07 фев 2019, 16:13
Сообщения: 22
BusMaster писал(а):
Да вы, сударь, болтун! :)))) Как раз подстать нашему Серево.
Если вы не знаете, что такое NOP и декремент - вы у нас не приживетесь.


Страшенный ! А если знаю ? Но приживаться у "нас" я не собирался ни в каком случае.
Нас это кто ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 22:32 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 3734
Откуда: КЧР, поселок Нижний Архыз
Дорогой, если тебе нужны задержки, то ты явно что-то делаешь не так!
Пора переосмыслить парадигму программирования. И перво-наперво забыть абдурино-стайл!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: подкиньте библиотеку задержек для stm8 (на таймере)
СообщениеДобавлено: 16 фев 2019, 22:41 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 1226
Откуда: Ижевск
пора забыть программирование
если ты пришел на русский форум и задаешь вопросы - ты не программист и никогда им не станешь, например по причине нехватки времени.

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

_________________
Береги планету.


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

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


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

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


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

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

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