реклама на сайте
подробности

 
 
> Как сделать времевую задержку в AVR без таймера
Student2
сообщение Aug 9 2009, 10:42
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



Хочу сделать переменную задержку без използование таймера с резолюцию 1 или 2 цикла.

То что сделал выглядить так:

CODE
#pragma inline=forced
#pragma optimize=s 9 /* this switches the maximum speed optimization for this function only */
void delay(uint8_t delatTime) /* delay routine */
/*------------------------------------------------------ */
{
if(delatTime> TIME_0) /* we do delay on base on the dwell time */
{ /* no branch - 2 clock cycles to this point */
if(delatTime> TIME_1)
{ /* no branch - 4 clock cycles to this point */
if(delatTime> TIME_2)
{ /* no branch - 6 clock cycles to this point */
if(delatTime> TIME_3)
{ /* no branch - 8 clock cycles to this point */
if(delatTime> TIME_4)
{ /* no branch - 10 clock cycles to this point */
if(delatTime> TIME_5)
{ /* no branch - 12 clock cycles to this point */
if(delatTime> TIME_6)
{ /* no branch - 14 clock cycles to this point */
if(delatTime> TIME_7)
{ /* no branch - 16 clock cycles to this point */
if(delatTime> TIME_8)
{ /* no branch - 18 clock cycles to this point */
if(delatTime> TIME_9)
{ /* no branch - 20 clock cycles to this point */
if(delatTime> TIME_10)
{ /* no branch - 22 clock cycles to this point */
__delay_cycles(2);
}
}
}
}
}
}
}
}
}
}
}
}


Я думаю что задержка с резолюции из одного цикла можно сделать с lookup table но не могу понять как ее построить в IAR.

Буду благодарен если поделитесь как Вы делаете задержки без използование таймера.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Student2   Как сделать времевую задержку в AVR без таймера   Aug 9 2009, 10:42
- - izerg   Цитата(Student2 @ Aug 9 2009, 13:42) Я ду...   Aug 9 2009, 12:45
|- - Student2   Цитата(izerg @ Aug 9 2009, 15:45) __delay...   Aug 9 2009, 13:02
|- - izerg   Приведите пример кода, в котором хотите использова...   Aug 10 2009, 10:03
|- - Student2   Цитата(izerg @ Aug 10 2009, 13:03) Привед...   Aug 10 2009, 11:29
|- - MrYuran   Цитата(Student2 @ Aug 10 2009, 15:29) Хоч...   Aug 10 2009, 11:41
|- - Student2   Цитата(MrYuran @ Aug 10 2009, 14:41) сфор...   Aug 10 2009, 11:52
- - Student2   Я увидел что IAR for TI имеет ключевое слово __ev...   Aug 10 2009, 08:06
|- - Палыч   Цитата(Student2 @ Aug 10 2009, 11:06) Воп...   Aug 10 2009, 11:05
|- - Student2   Цитата(Палыч @ Aug 10 2009, 14:05) Этот в...   Aug 10 2009, 11:20
- - MrYuran   Кодvoid Pause(unsigned int volatile mks) {...   Aug 10 2009, 10:17
- - Goodefine   Можно как то так: Код#define TICK 2 ... void delay...   Aug 10 2009, 10:17
- - Rst7   Ну если уж очень хочется извратиться, то можно так...   Aug 10 2009, 11:47
|- - Student2   Спасибо Rst7 - код выглядит хорошо и буду пользова...   Aug 10 2009, 12:00
- - Rst7   ЦитатаМне хотелось как нибудь не трогать ассемблер...   Aug 10 2009, 12:00
- - Rst7   Можно чуть убрать оверхед, используя такой бубен: ...   Aug 10 2009, 12:09
- - Student2   Цитатаname='Rst7' Воистину это еще лучше...   Aug 10 2009, 12:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016