Вс дек 11, 2016 12:36:52
Вс дек 11, 2016 12:47:59
Вс дек 11, 2016 13:46:53
Вс дек 11, 2016 16:01:02
Вс дек 11, 2016 21:42:39
void delay(uint8_t delay)
{
asm volatile ( "; \n\t \
WAIT_LOOP%=: \n\t \
dec %[delay] ;1 \n\t \
brne WAIT_LOOP%= ;1/2 \n\t \
"
: [delay] "+d" (delay) : : "cc" );
}
Вт дек 13, 2016 11:33:16
Вт дек 13, 2016 11:39:25
Вт дек 13, 2016 12:31:31
Вт дек 13, 2016 14:34:03
rxstart1 писал(а):Спасибо за ответ. Стандартная функция не устраивает из-за размера библиотеки
Вс дек 18, 2016 13:09:07
rxstart1 писал(а):В общем возникла необходимость написать функцию задержки на АСМе и передать в нее параметр...
Пишу в AVR VISUAL STUDIO.
Вт дек 20, 2016 17:24:39
ptr128 писал(а):А вообще, по уму, больше чем несколько десятков тактов задержки на цикле делать не рекомендую. Пользуйтесь таймерами и прерываниями для больших интервалов.
Вт дек 20, 2016 18:42:57
AQ29 писал(а):Таймер может быть занят другими подпрограммами.
Если МК во время задержки ничего не делает, лучше сделать задержку на цикле.
Вт дек 20, 2016 23:11:56
Вт дек 20, 2016 23:38:49
COKPOWEHEU писал(а):Таймер может быть занят генерацией ШИМа
COKPOWEHEU писал(а):использование "тупых" задержек вполне допустимо
ptr128 писал(а):плюс минус лапоть, не зная, сколько времени ушло на обработку прерываний
COKPOWEHEU писал(а):подсчетом внешних импульсов, полуфабрикатом для какого-нибудь интерфейса (UART хотя бы)
Ср дек 21, 2016 06:50:08
Это если его частота фиксирована.Таймер, генерирующий ШИМ, вполне приемлем для вычисления задержек, кратных частоте ШИМ.
Немногие контроллеры так умеют. Вроде, только тиньки и то не все.Никто не запрещает так же watchdog таймер в режиме прерывания использовать для задержек.
Ср дек 21, 2016 07:31:48
COKPOWEHEU писал(а):Это если его частота фиксирована.Таймер, генерирующий ШИМ, вполне приемлем для вычисления задержек, кратных частоте ШИМ.
COKPOWEHEU писал(а):Немногие контроллеры так умеют. Вроде, только тиньки и то не все.watchdog таймер
Ср дек 21, 2016 07:36:23
atmega8ptr128 писал(а):А то я не знаю ни одного AVR, без Watchdog Interrupt
Ср дек 21, 2016 07:55:46
ARV писал(а):atmega8ptr128 писал(а):А то я не знаю ни одного AVR, без Watchdog Interrupt
Ср дек 21, 2016 16:31:37
А какой смысл менять частоту ШИМ? В подавлющем большинстве случаев, мы управляем скважностью ШИМ на одной и той же частоте.
ATtiny2313, ATmega8, ATmega8515. Наверное, все более-менее старые версии. Кстати на ATmega8 напрасно наезжаете - довольно удачный контроллер. А вот у AT90S2313 / ATtiny2313 видимо, нехорошая аура - новички с ним постоянно косячатВы бы пример привели. А то я не знаю ни одного AVR, без Watchdog Interrupt
Ср дек 21, 2016 16:44:54
COKPOWEHEU писал(а):ATtiny2313Вы бы пример привели. А то я не знаю ни одного AVR, без Watchdog Interrupt
COKPOWEHEU писал(а):Кстати на ATmega8 напрасно наезжаете - довольно удачный контроллер.