Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
BrMysho
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
1

задержки на таймере

10.11.2012, 22:10. Просмотров 2899. Ответов 2
Метки нет (Все метки)

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

Код
void timerDelayInit(void)
{
// таймер должен делать 1 тик в 1 микросекунду
TYM1_PSCRH = 0; TYM1_PSCRL = 16;
TYM1_CR1 = MASK_TYM1_CR1_OPM|MASK_TYM1_CR1_DIR;   // обратный счет, остановка по переполнению
}

void timerDelayUs(unsykned int us)
{
TYM1_CNTRH = HI(us); TYM1_CNTRL = LO(us);
TYM1_CR1_bit.CEN = 1;
while (TYM1_CR1_bit.CEN);
}

void timerDelayMs(unsykned int ms)
{
while(ms--) {
// задержка 1000 мкс
TYM1_CNTRH = 0x03; TYM1_CNTRL = 0xE8;
TYM1_CR1_bit.CEN = 1;
while (TYM1_CR1_bit.CEN){
}
}
}
timerDelayMs вроде бы работает нормально, а вот на счет timerDelayUs я как то не уверен (есть глюки в библиотеке ds18b20).
Подскажите плиз, на сколько оправдано такое решение?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 22:10
Ответы с готовыми решениями:

STM32F4. Задержки на таймере в CooCox
Необходини задержка на 1ms. Я долгое время пользовался задержками на Systysk, как в ST-шных...

Контроль светодиодов в таймере (PIC16F676, ASM)
На микроконтроллере PIC16F676 не получается добавить таймер чтобы по нулевым значениям через таймер...

Какая максимальная прогрешность в моем таймере в MCS-51?
вообщем задача стояла такая, написать програма которая обеспечивает мигание двух светодиодов с...

Задачи и задержки
Работаю с FriiRTOS и RTX. Возник вопрос. запускаются 2 задачи с одинаковым приоритетом. Обе...

FreeRTOS и длительность задержки
Заранее извиняюсь за глупые вопросы:) Суть проблемы: приспичило мне освоить RTOS. Поднимать начал...

2
RyshirD
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 574
11.11.2012, 16:54 2
Цитата Сообщение от BrMysho
TYM1_CNTRH = HI(us); TYM1_CNTRL = LO(us);
Динная строчка смущает. На какой частоте работает проц? Ну и еще, на выполнение команд и перехода на подпрограмму - необходимо время, так что если вы на 1мкс включаете - он может сработать на 2мкс.
А по тексту вроде верно.
0
BrMysho
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 204
20.11.2012, 19:51 3
частота 16 мгц, я расчитываю делать этой функцией задержки не менее 10 мкс, меньше при такой частоте врятли получися
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 19:51

AT89C51. Организация задержки
Доброго времени суток. Возникла задача организовать задержку 3 секунды с помощью 16ти разрядного...

Функции задержки времени
Какие функции задержки времени вы используете? Мои потуги в использовании задержек какието...

Задержки в таймере
например, таймер у меня опрашивает каждую секунду выполнение одного условия. Можно сделать так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru