как грамотно с точки зрения профессионального программиста недоверяющего стандартным либам реализовать функцию задержки аналогичную стандартной __delay_ms () но более точной чтоли.просто есть сомнения в точности стандартной задержки и плюс вот эта ветка на форуме http://forum.easyelectronics.ru/viewtopic.php?f=5&t=22941. то есть как реализовать зажержки и написать функцию в ручную?
Профессиональный программист доверяет стандартным либам, бо знает, что велосипед уже изобретен. Это так, к слову. Насчет плюс вот той ветки - нужно паять не в симуляторах, а в реале. Кстати, вы до конца ту ветку дочитали? Такое ощущение, что нет. Теперь про сам _delay_ms(). В любых непонятных случаях нужно читать инструкции. В данном случае описание в хелпе. Многое, знаете ли, встает на свои места. И последнее. Если уж так не терпится написать более точное, то пишем ассемблерную вставку, просчитывая время выполнения каждой команды, не забыв при этом отключить прерывания. Да, и еще, - ну и насколько точной должна быть задержка? Какие такие мюзоны вы там просчитать хотите?
как грамотно с точки зрения профессионального программиста
Грамотно завести в проекте системный таймер и все задержки формировать в его обработчике. Но если нужна не приблизительная задержка, а точный временной интервал с хорошим разрешением по времени в программе, то для этого используют Output Compare без вывода на пин, а лишь с прерыванием.
Заголовок сообщения: Re: организация грамотной задержки xc8
Добавлено: Ср сен 23, 2015 09:45:03
Модератор
Карма: 90
Рейтинг сообщений: 1337
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4558 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
rakka писал(а):
как грамотно с точки зрения профессионального программиста недоверяющего стандартным либам реализовать функцию задержки аналогичную стандартной __delay_ms () но более точной чтоли.просто есть сомнения в точности стандартной задержки и плюс вот эта ветка на форуме http://forum.easyelectronics.ru/viewtopic.php?f=5&t=22941. то есть как реализовать зажержки и написать функцию в ручную?
А откуда сомнения такие ? Или просто из головы ? Да и вышеупомянутую ветку до конца дочитать не мешало бы.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
просто я видел что делают так,зачем? for (i=0;i<10;i++) __delay_ms (10); вот так примерно реализуют задержку на 100 милисек.зачем же эти извращения если можно просто написать __delay_ms (100);
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
pyzhman
Заголовок сообщения: Re: организация грамотной задержки xc8
никакой потёмки нет! товарищ не изучил документацию и удивляется. а в документации написано, что _delay_ms - это не функция, а макрос. и для его нормальной работы необходимо в параметре указывать КОНСТАНТУ, а не переменную. с переменной получается, мягко говоря, кака вместо задержки.
так вот когда кому-то приспичит сделать задержку ПЕРЕМЕННОЙ величины, вот тогда и делают цикл: итерациями цикла нагоняют количественно задержку из КОНСТАНТНЫХ маленьких задержек.
P.S. не надо делать два подчеркивания в начале имени макроса _delay_ms - их там не два, а один.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
во-первых там именно два нижних подчеркивания,куда не посмотри все пишу два.работает. но вот насчет константы - я 10 ставлю от головы,а сколько там на самом деле то константа?где посмотреть?
во-первых там именно два нижних подчеркивания,куда не посмотри все пишу два.работает. но вот насчет константы - я 10 ставлю от головы,а сколько там на самом деле то константа?где посмотреть?
цитирую delay.h, по-моему, это эталон написания, не так ли?
...когда кому-то приспичит сделать задержку ПЕРЕМЕННОЙ величины, вот тогда и делают цикл: итерациями цикла нагоняют количественно задержку из КОНСТАНТНЫХ маленьких задержек...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения