Easyelectronics.ru

Электроника для всех
Текущее время: 23 июл 2018, 07:23

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • 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
Сообщения: 4784
Валек, макросы же, однозначно.
Рано тебе перелезать с аурдуньи..


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

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

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


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

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

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


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

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


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


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

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

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


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

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


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

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

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

Бог подаст.


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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