Цитата(mdmitry @ Dec 19 2008, 16:05)

Посмотрите файлы delay_basic.h и delay.h. Должно помочь. Изучение заголовочных файлов и описания avr-libc мне сильно помогло.
это перенесётся на IAR согласен
Код
void
_delay_ms(double __ms)
{
uint16_t __ticks;
double __tmp = ((F_CPU) / 4e3) * __ms;
if (__tmp < 1.0)
__ticks = 1;
else if (__tmp > 65535)
{
// __ticks = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
while(__ticks)
{
// wait 1/10 ms
_delay_loop_2(((F_CPU) / 4e3) / 10);
__ticks --;
}
return;
}
else
__ticks = (uint16_t)__tmp;
_delay_loop_2(__ticks);
}
а как быть с этим
Код
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
"1: sbiw %0,1" "\n\t"
"brne 1b"
: "=w" (__count)
: "0" (__count)
);
}
я, в асме из под IAR несилён, подскажите как это можно под IAR переписать ?
Сообщение отредактировал west329_ - Dec 19 2008, 12:14