Куда пропадает точность _delay_ms() ?

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Куда пропадает точность _delay_ms() ?

Сообщение Карбофос »

А ты сам на листинг "машинного кода" посмотрел?
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Куда пропадает точность _delay_ms() ?

Сообщение ARV »

[uquote="Карбофос",url="/forum/viewtopic.php?p=4223031#p4223031"]Займитесь собой.[/uquote]
не указывайте мне, что мне делать, и я не скажу, куда вам пойти.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Куда пропадает точность _delay_ms() ?

Сообщение Карбофос »

Это не моя проблема.
Последний раз редактировалось Карбофос Ср апр 27, 2022 21:48:19, всего редактировалось 1 раз.
~Dimon~
Мучитель микросхем
Сообщения: 419
Зарегистрирован: Пт окт 28, 2011 16:01:18

Re: Куда пропадает точность _delay_ms() ?

Сообщение ~Dimon~ »

[uquote="Карбофос",url="/forum/viewtopic.php?p=4223055#p4223055"]А ты сам на листинг "машинного кода" посмотрел?[/uquote]

Код: Выделить всё

#include <util/delay.h>


int main() {

	_delay_us(2.34 * 1.67);
}

Код: Выделить всё

38:   80 e2           ldi     r24, 0x20       ; 32
3a:   8a 95           dec     r24
3c:   f1 f7           brne    .-4             ; 0x3a <main+0x2>
Ну и где здесь double?
Если спросите вежливо, могу даже рассказать как это получилось :)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Куда пропадает точность _delay_ms() ?

Сообщение Карбофос »

~Dimon~, скажите пожалуйста, как это получилось?
Я очень заранее благодарен Вам.

Я пошутил. Извините.
Реклама
~Dimon~
Мучитель микросхем
Сообщения: 419
Зарегистрирован: Пт окт 28, 2011 16:01:18

Re: Куда пропадает точность _delay_ms() ?

Сообщение ~Dimon~ »

Компиляторы, это такие хитрые звери, которые очень любят константные выражения, то есть такие выражения, результат которых можно вычислить на этапе компиляции.
В данном случае, так как на входе _delay_us() оказалась константа, все внутренности функции так же превратились в константные выражения и были вычислены на этапе компиляции, что свело все к банальному for(ct = 32; ct; ct--);

Но это в общем не гарантия!
Смотрите листинг, что там нагенерил именно ваш компилятор, именно в вашем проекте, именно в сегодняшней фазе луны.
Реклама
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Куда пропадает точность _delay_ms() ?

Сообщение Карбофос »

А Вы тему точно с 1-го поста читали?
чел решил скрестить ArduinoIDE с avr-gcc, у него не получилось.
Более того, он вручную управляет таймером 0, которым arduino считает свои микросекунды.
Эта тема чисто поржать.
alex68md
Грызет канифоль
Сообщения: 275
Зарегистрирован: Сб янв 03, 2015 21:03:24

Re: Куда пропадает точность _delay_ms() ?

Сообщение alex68md »

[uquote="Карбофос",url="/forum/viewtopic.php?p=4222999#p4222999"]wiring.c не пробовали посмотреть?[/uquote]
пробовали. еще в первом посте об этом написано. но мне не нужны микросы и прерывание у меня ровно 1мс а не с погрешностью как там.

плюс зачем мне цикл в цикле и куча операций сложения вычетания ? чем мой более лаконичный вариант плох ?

PS: а вы точно читали ? кто где что пытался скрестить ? чё то вас занесло не в ту степь. извини дядя иди своей дорогой коль не разобрался. "нам такой хокей не нужен"

Добавлено after 4 minutes 52 seconds:
~Dimon~, спасибо за листинг.

PS: тут возник вопрос по самому прерыванию но уже задам в соответсвующей теме чтобы чтобы не делать кашы из темы

Добавлено after 2 minutes 55 seconds:
админы плиз закройте тему.

кто конструктивно участвовал - спасибо.
~Dimon~
Мучитель микросхем
Сообщения: 419
Зарегистрирован: Пт окт 28, 2011 16:01:18

Re: Куда пропадает точность _delay_ms() ?

Сообщение ~Dimon~ »

Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.
Оно там далеко не всегда страшное.
Аватара пользователя
Карбофос
Опытный кот
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Re: Куда пропадает точность _delay_ms() ?

Сообщение Карбофос »

Я более всех конструктивно участвовал.

Добавлено after 3 minutes 45 seconds:
[uquote="~Dimon~",url="/forum/viewtopic.php?p=4223093#p4223093"]Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.
Оно там далеко не всегда страшное.[/uquote]
Совершенно верно.
Просто, большинство людей - долбоёбы.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Куда пропадает точность _delay_ms() ?

Сообщение Eddy_Em »

[uquote="~Dimon~",url="/forum/viewtopic.php?p=4223093#p4223093"]Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.[/uquote]
Если аврщик пишет float или double, то это - долбоеб откровеннейший!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
НовыйДень
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс апр 03, 2022 07:01:29

Re: Куда пропадает точность _delay_ms() ?

Сообщение НовыйДень »

Дааа, лет 8 назад на радиокоте обсуждали более сложные и более интересные вопросы, чем проблема счётчика миллисекунд... :)))
Хотя Эдя на всех форумах во все времена одинаков.
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Куда пропадает точность _delay_ms() ?

Сообщение codenamehawk »

[uquote="alex68md",url="/forum/viewtopic.php?p=4222427#p4222427"]да прерывание срабатывает только на следующий процессорный тик. т.е. получится 256-1 = 255 реальных[/uquote]
Разве следующий это не плюс один?
Тогда нормально получается 255 + 1 = 256
Ответить

Вернуться в «AVR»