По этой причине, в бухгалтерских программах не используются вычисления с плавающей запятой ибо даже современных 128 бит не хватает чтобы избавится от этого эффекта.
AVR studio в вопросах и ответах
И не поменяется, такая же петрушка и на обычных ПК, в общем случае множество десятичных чисел невозможно представить конечной двоичной дробью. Если надо работать с десятичными числами с точностью до н-го знака то лучше использовать числа с фиксированной запятой.
По этой причине, в бухгалтерских программах не используются вычисления с плавающей запятой ибо даже современных 128 бит не хватает чтобы избавится от этого эффекта.
По этой причине, в бухгалтерских программах не используются вычисления с плавающей запятой ибо даже современных 128 бит не хватает чтобы избавится от этого эффекта.
- Реклама
Я же написал - float и double имеют размер 4 байта для avr-gcc (он, обычно, и используется в AVR Studio).
Нужны детали - google вам в помощь.
Нужны детали - google вам в помощь.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучше всего отвечает на этот вопрос именно эта статья: Неочевидные особенности вещественных чисел
Вся суть этих "ошибок" - в способе представления вещественных чисел в цифровом вычислителе, а не в конкретной реализации.
Вся суть этих "ошибок" - в способе представления вещественных чисел в цифровом вычислителе, а не в конкретной реализации.
Перенёс сюда.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Спасибо за помощь. И кстати, разве double не 8 байт? Или в Авр студии подругому?
- Реклама
Нет, double в avr-gcc не 8 байт, а именно 4.
http://gcc.gnu.org/wiki/avr-gcc
И различайте AVR Sudio и компилятор, который она использует.
AVR Studio может использовать либо компилятор с ассемблера, либо avr-gcc (GNU C Compiler for AVR).
Об этом много раз уже писали:
http://radiokot.ru/forum/viewtopic.php? ... 6#p1658236
http://radiokot.ru/forum/viewtopic.php? ... 3#p1592833
http://radiokot.ru/forum/viewtopic.php? ... 4#p1586554
http://gcc.gnu.org/wiki/avr-gcc
И различайте AVR Sudio и компилятор, который она использует.
AVR Studio может использовать либо компилятор с ассемблера, либо avr-gcc (GNU C Compiler for AVR).
Об этом много раз уже писали:
http://radiokot.ru/forum/viewtopic.php? ... 6#p1658236
http://radiokot.ru/forum/viewtopic.php? ... 3#p1592833
http://radiokot.ru/forum/viewtopic.php? ... 4#p1586554
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 47
- Зарегистрирован: Вт мар 20, 2012 07:16:43
Подскажите, как решить проблему. Решил разбить программу на модули. Основная часть - progr.asm , вспомогательная (работа с lcd) - lcd.asm. В основной части указал: .include "lcd.asm". При отладке постоянно открывает вспомогательную часть, а не основную. Как переключиться на основную?!
P.S. Не проблема объединить всё в одном файле, но хочется все сделать по-человечески.

Проблему решил. Переключаться можно командой "Set next statement"
P.S. Не проблема объединить всё в одном файле, но хочется все сделать по-человечески.
Проблему решил. Переключаться можно командой "Set next statement"
Ну, вообще-то у тебя получилось так что первая исполняемая строчка находится в инклуде. Вот он и переходит туда.
Плохо, очень плохо так делать. Толку-то? Разделять надо ПРАВИЛЬНО, весь основной цикл должен быть в главном файле, а в инклудах - вся остальная мишура определения, алиасы, константы, макросы, подпрограммы.
Если нужна какая-то инициализация, и хочется её определить в инклуде - определи её в качестве макроса с говорящим именем, а в главном файле на этапе инициализации просто вставь этот макрос. Так легко будет отделить мух от котлет и не нарушать код главного файла.
Плохо, очень плохо так делать. Толку-то? Разделять надо ПРАВИЛЬНО, весь основной цикл должен быть в главном файле, а в инклудах - вся остальная мишура определения, алиасы, константы, макросы, подпрограммы.
Если нужна какая-то инициализация, и хочется её определить в инклуде - определи её в качестве макроса с говорящим именем, а в главном файле на этапе инициализации просто вставь этот макрос. Так легко будет отделить мух от котлет и не нарушать код главного файла.
Кто-нибудь знает как вызвать внешнее прерывание INT0 и INT1 в отладчике AVR simulator (AVR Studio 4.19)?
Дернуть вывод порта с ним связанный.
А прерывание разрешено?
- настроить прерывание INT0 на необходимое условие срабатывания(уровень, фронты и т.д.)
- разрешить прерывание по INT0
- разрешить общие прерывания.
И только после этого дергать вывод порта. А, да... не ВЫХОДНОЙ регистр, а ВХОДЫ порта.
- настроить прерывание INT0 на необходимое условие срабатывания(уровень, фронты и т.д.)
- разрешить прерывание по INT0
- разрешить общие прерывания.
И только после этого дергать вывод порта. А, да... не ВЫХОДНОЙ регистр, а ВХОДЫ порта.
В железе работает, в протеусе тоже. просто глюк какой-то наверно.
в студии тоже работает, проверял не так давно. Надо только трогать правильный ВХОД контроллера, а не его защелку-выход, в режиме отладки электрического соединения выхода защелки и входа нет - они работают полностью независимо, а прерывание срабатывает лишь от реального состояния порта.
В отладчике так же надо убедится что ты не находишься внутри другого прерывания - т.е. общие прерывания должны быть разрешены. Ну и для надежности попробуй вручную поставить признак прерывания, оно уж точно должно сработать сразу же.
В отладчике так же надо убедится что ты не находишься внутри другого прерывания - т.е. общие прерывания должны быть разрешены. Ну и для надежности попробуй вручную поставить признак прерывания, оно уж точно должно сработать сразу же.
Чтобы прерывание сработало нужно еще пару шагов сделать. после установки флага прерывания выполняется последняя команда, а потом уже переходит к самому прерыванию.
И когда порт дергаем можно посмотреть установился ли флаг. даже если прерывания запрещены- флаг запроса прерывания должен установиться.
И когда порт дергаем можно посмотреть установился ли флаг. даже если прерывания запрещены- флаг запроса прерывания должен установиться.
- Сообщения: 563
- Зарегистрирован: Чт апр 16, 2009 04:53:41
Ну просто возмутительно:

почему так получается? Дизассамблер как-то кусками показывает. и симулятор как-то косячно работает?
Вот,только-что попробовал АВРсимулятор2 переключить на АВРсимулятор1,вроде все чикаго стало.
А что это за прикол был?

почему так получается? Дизассамблер как-то кусками показывает. и симулятор как-то косячно работает?
Вот,только-что попробовал АВРсимулятор2 переключить на АВРсимулятор1,вроде все чикаго стало.
А что это за прикол был?
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
в AVRst 4 после компиляции окна как будто передергивает и они меняют свое положение, крайне сильно раздражает, как с этим бороться?
может после запуска дебаггера? у дебаггера отдельно настраивается вид. а дерганье - это переключение между двумя рабочими пространствами.
Ставим плюсы: )
- Сообщения: 35
- Зарегистрирован: Пт дек 23, 2011 07:10:01
Добрый день! на днях начал осваивать AVR Studio первые пару дней все работало, а сегодня при запуске симуляции (ctrl+f7) выдает ошибку:
FATAL ERROR: Cannot open output file C:\Users\Tрэ¬ъ\Documents\uchebka\uchebka.hex: No such file or directory
искал вручную - hex файл не нашел. видимо не генерируется. версия студии 4,19. кто нибудь сталкивался с подобной проблемой?
FATAL ERROR: Cannot open output file C:\Users\Tрэ¬ъ\Documents\uchebka\uchebka.hex: No such file or directory
искал вручную - hex файл не нашел. видимо не генерируется. версия студии 4,19. кто нибудь сталкивался с подобной проблемой?
Однако как у вас папки интересно называются. По-англицки не пробовали обзывать?Tрэ¬ъ
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


