Куда пропадает точность _delay_ms() ?
Re: Куда пропадает точность _delay_ms() ?
А ты сам на листинг "машинного кода" посмотрел?
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18560
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Куда пропадает точность _delay_ms() ?
[uquote="Карбофос",url="/forum/viewtopic.php?p=4223031#p4223031"]Займитесь собой.[/uquote]
не указывайте мне, что мне делать, и я не скажу, куда вам пойти.
не указывайте мне, что мне делать, и я не скажу, куда вам пойти.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Куда пропадает точность _delay_ms() ?
Это не моя проблема.
Последний раз редактировалось Карбофос Ср апр 27, 2022 21:48:19, всего редактировалось 1 раз.
Re: Куда пропадает точность _delay_ms() ?
[uquote="Карбофос",url="/forum/viewtopic.php?p=4223055#p4223055"]А ты сам на листинг "машинного кода" посмотрел?[/uquote]
Ну и где здесь double?
Если спросите вежливо, могу даже рассказать как это получилось
Код: Выделить всё
#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>
Если спросите вежливо, могу даже рассказать как это получилось
Re: Куда пропадает точность _delay_ms() ?
~Dimon~, скажите пожалуйста, как это получилось?
Я очень заранее благодарен Вам.
Я пошутил. Извините.
Я очень заранее благодарен Вам.
Я пошутил. Извините.
- Реклама
Re: Куда пропадает точность _delay_ms() ?
Компиляторы, это такие хитрые звери, которые очень любят константные выражения, то есть такие выражения, результат которых можно вычислить на этапе компиляции.
В данном случае, так как на входе _delay_us() оказалась константа, все внутренности функции так же превратились в константные выражения и были вычислены на этапе компиляции, что свело все к банальному for(ct = 32; ct; ct--);
Но это в общем не гарантия!
Смотрите листинг, что там нагенерил именно ваш компилятор, именно в вашем проекте, именно в сегодняшней фазе луны.
В данном случае, так как на входе _delay_us() оказалась константа, все внутренности функции так же превратились в константные выражения и были вычислены на этапе компиляции, что свело все к банальному for(ct = 32; ct; ct--);
Но это в общем не гарантия!
Смотрите листинг, что там нагенерил именно ваш компилятор, именно в вашем проекте, именно в сегодняшней фазе луны.
Re: Куда пропадает точность _delay_ms() ?
А Вы тему точно с 1-го поста читали?
чел решил скрестить ArduinoIDE с avr-gcc, у него не получилось.
Более того, он вручную управляет таймером 0, которым arduino считает свои микросекунды.
Эта тема чисто поржать.
чел решил скрестить ArduinoIDE с avr-gcc, у него не получилось.
Более того, он вручную управляет таймером 0, которым arduino считает свои микросекунды.
Эта тема чисто поржать.
Re: Куда пропадает точность _delay_ms() ?
[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:
админы плиз закройте тему.
кто конструктивно участвовал - спасибо.
пробовали. еще в первом посте об этом написано. но мне не нужны микросы и прерывание у меня ровно 1мс а не с погрешностью как там.
плюс зачем мне цикл в цикле и куча операций сложения вычетания ? чем мой более лаконичный вариант плох ?
PS: а вы точно читали ? кто где что пытался скрестить ? чё то вас занесло не в ту степь. извини дядя иди своей дорогой коль не разобрался. "нам такой хокей не нужен"
Добавлено after 4 minutes 52 seconds:
~Dimon~, спасибо за листинг.
PS: тут возник вопрос по самому прерыванию но уже задам в соответсвующей теме чтобы чтобы не делать кашы из темы
Добавлено after 2 minutes 55 seconds:
админы плиз закройте тему.
кто конструктивно участвовал - спасибо.
Re: Куда пропадает точность _delay_ms() ?
Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.
Оно там далеко не всегда страшное.
Оно там далеко не всегда страшное.
Re: Куда пропадает точность _delay_ms() ?
Я более всех конструктивно участвовал.
Добавлено after 3 minutes 45 seconds:
[uquote="~Dimon~",url="/forum/viewtopic.php?p=4223093#p4223093"]Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.
Оно там далеко не всегда страшное.[/uquote]
Совершенно верно.
Просто, большинство людей - долбоёбы.
Добавлено 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() ?
[uquote="~Dimon~",url="/forum/viewtopic.php?p=4223093#p4223093"]Я в общем то насчет тех постов, в которых людей пугали double на входе _delay.[/uquote]
Если аврщик пишет float или double, то это - долбоеб откровеннейший!
Если аврщик пишет float или double, то это - долбоеб откровеннейший!
Re: Куда пропадает точность _delay_ms() ?
Дааа, лет 8 назад на радиокоте обсуждали более сложные и более интересные вопросы, чем проблема счётчика миллисекунд... 
Хотя Эдя на всех форумах во все времена одинаков.
Хотя Эдя на всех форумах во все времена одинаков.
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Куда пропадает точность _delay_ms() ?
[uquote="alex68md",url="/forum/viewtopic.php?p=4222427#p4222427"]да прерывание срабатывает только на следующий процессорный тик. т.е. получится 256-1 = 255 реальных[/uquote]
Разве следующий это не плюс один?
Тогда нормально получается 255 + 1 = 256
Разве следующий это не плюс один?
Тогда нормально получается 255 + 1 = 256


