Easyelectronics.ru

Электроника для всех
Текущее время: 16 окт 2018, 08:56

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: задержки на таймере
СообщениеДобавлено: 11 ноя 2012, 21:57 
Старожил

Зарегистрирован: 22 авг 2011, 17:36
Сообщения: 251
Решил пересесть на stm8, сначала было мутновато, но вроде понемногу въезжаю.
Как оказалось, в стандартных библиотеках нет функций _delay_ms и _delay_us, я решил сделать на таймере:

Код:
void timerDelayInit(void)
{
   // таймер должен делать 1 тик в 1 микросекунду
   TIM1_PSCRH = 0; TIM1_PSCRL = 16;
   TIM1_CR1 = MASK_TIM1_CR1_OPM|MASK_TIM1_CR1_DIR;   // обратный счет, остановка по переполнению
}

void timerDelayUs(unsigned int us)
{
   TIM1_CNTRH = HI(us); TIM1_CNTRL = LO(us);
   TIM1_CR1_bit.CEN = 1;
   while (TIM1_CR1_bit.CEN);
}

void timerDelayMs(unsigned int ms)
{
   while(ms--) {
      // задержка 1000 мкс
      TIM1_CNTRH = 0x03; TIM1_CNTRL = 0xE8;
      TIM1_CR1_bit.CEN = 1;
      while (TIM1_CR1_bit.CEN){
      }      
   }
}

timerDelayMs вроде бы работает нормально, а вот на счет timerDelayUs я как то не уверен (есть глюки в библиотеке ds18b20).
Подскажите плиз, на сколько оправдано такое решение?


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

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
BrMisha писал(а):
TIM1_CNTRH = HI(us); TIM1_CNTRL = LO(us);


Данная строчка смущает. На какой частоте работает проц? Ну и еще, на выполнение команд и перехода на подпрограмму - необходимо время, так что если вы на 1мкс включаете - он может сработать на 2мкс.
А по тексту вроде верно.

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 21 ноя 2012, 19:38 
Старожил

Зарегистрирован: 22 авг 2011, 17:36
Сообщения: 251
частота 16 мгц, я расчитываю делать этой функцией задержки не менее 10 мкс, меньше при такой частоте врятли получися


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 29 ноя 2017, 23:46 
Только пришел

Зарегистрирован: 05 мар 2016, 12:40
Сообщения: 10
Код:
TIM1_CNTRH = HI(us); TIM1_CNTRL = LO(us);

А что делает эта строка? Не понятна вот эта запись HI(us) и LO(us).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 29 ноя 2017, 23:54 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5089
Валек, макросы же, однозначно.
Рано тебе перелезать с аурдуньи..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 30 ноя 2017, 00:17 
Только пришел

Зарегистрирован: 05 мар 2016, 12:40
Сообщения: 10
dosikus_2 писал(а):
Валек, макросы же, однозначно.
Рано тебе перелезать с аурдуньи..

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 30 ноя 2017, 16:34 
Старожил

Зарегистрирован: 06 фев 2011, 15:16
Сообщения: 616
Откуда: Челябинск
BrMisha писал(а):
частота 16 мгц, я расчитываю делать этой функцией задержки не менее 10 мкс, меньше при такой частоте врятли получися

Вообще-то, если вы хотите получить 1 мкс интервал, в предделитель нужно занести число 15. Или нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 30 ноя 2017, 16:44 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5089
Valek174 писал(а):
Макросы, макросы... как их понимать?


Вот с этого и паляться ардуинщики, вменяемого С не нюхавшие.
Подобных тебе за версту видно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 30 ноя 2017, 16:59 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2376
dosikus_2 писал(а):
вменяемого С не нюхавшие

А его никто не нюхал. С без препроцессора неюзабельный, а с препроцессором - невменяемый. Я могу объяснить почему, но вы не поймете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: задержки на таймере
СообщениеДобавлено: 30 ноя 2017, 17:12 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5089
evsi, продолжаешь себе же что-то доказывать сидя у зеркала?
Давай-давай....


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

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2376
dosikus_2 писал(а):
evsi, продолжаешь себе же что-то доказывать сидя у зеркала?

Зачем же. Меня вполне развлекает зрелище пыжащегося доказать свою "илитность" досикуса. Ща еще мастер по автобусам подтянется, в вашем цирке его номер как раз после вашего.
dosikus_2 писал(а):
Давай-давай....

Бог подаст.


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

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


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

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


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

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

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