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

 
 
> _delay_us(), прошу помоч
Nerd
сообщение Mar 14 2010, 19:55
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 14-03-10
Пользователь №: 55 957



Кристал ATmega32, на внутреннем RC (по умолчанию 1000000UL).
_delay_ms работает правильно, а вот _delay_us ругается и отсылает

c:/winavr-20071221/bin/../avr/include/util/delay.h:143: sorry, unimplemented: inlining failed in call to '_delay_ms': function not considered for inlining
c:/winavr-20071221/bin/../avr/include/util/delay.h:116: sorry, unimplemented: called from here

ВОТ СЮДА

Код
_delay_us(double __us)
{
    uint8_t __ticks;
    double __tmp = ((F_CPU) / 3e6) * __us;
    if (__tmp < 1.0)
        __ticks = 1;
    else if (__tmp > 255)
    {
        _delay_ms(__us / 1000.0);
        return;
    }
    else
        __ticks = (uint8_t)__tmp;
    _delay_loop_1(__ticks);
}


Как я понял проверяется частота F_CPU и если она меньше чем нужно то микросекундных задержек нима.
На плате я непредусмотрел место для кварца о чём щас жалею.
Насколько максимально можно раскачегарить внутренний RC, или как сделать задержку на 50мкс.
?

Сообщение отредактировал rezident - Mar 16 2010, 16:52
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post



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

 


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


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