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

 
 
 
Reply to this topicStart new topic
> Глюк дебаггера Proteus 7.4 SP4 с float?
vertexodessa
сообщение Jun 1 2010, 17:56
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 1-06-10
Пользователь №: 57 685



Доброго дня!

Proteus не показывает значение переменных типа float в пошаговом режиме. Как сделать чтобы отображал?


Спасибо!
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 2 2010, 08:12
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Не использовать float переменных, особенно в прерываниях, особенно для подсчета каких-то там тиков таймера. И вообще, про float на 8битных платформах надо забыть.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 2 2010, 09:22
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



По существу вопроса могу добавить, что операция деления, примененная к целочисленным переменным, означает целочисленное деление.

Цитата(GDI @ Jun 2 2010, 12:12) *
И вообще, про float на 8битных платформах надо забыть.

В данном примере да, но насчет "вообще" позвольте не согласиться.

Сообщение отредактировал 777777 - Jun 2 2010, 09:23
Go to the top of the page
 
+Quote Post
Marian
сообщение Jun 2 2010, 18:25
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Попробуйте так :
Запустите отладку кнопкой STEP

Выберите отображать окно :
Debug->Watch Window

В окне мышкой :
Add items (by address..)

Memory -> AVR Data memory
Name -> Присвойте имя(может быть любым, нп. такое же как у переменной)
Address -> из окна AVR variables скопируйте адрес( у вас он равен 0151, это из Y+4=0151, записать в формате 0x0151 )

Data type -> IEEE float
Display format -> Hexadecimal (так было )

volatile для переменной вы уже написали, осталось отключить оптимизацию компилятора.
Удачи.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jun 3 2010, 00:23
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Marian @ Jun 2 2010, 21:25) *
volatile для переменной вы уже написали, осталось отключить оптимизацию компилятора.

Нафига ея отключать? smile.gif

Кстати, аффтортопику на заметку - лучше вначале хоть какие-нить макабуки почитать или по меню полазать, а потом уже про глюки говорить. Глюки есть, но совсэм нэ там. smile.gif
Go to the top of the page
 
+Quote Post
GDI
сообщение Jun 3 2010, 07:05
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(777777 @ Jun 2 2010, 13:22) *
В данном примере да, но насчет "вообще" позвольте не согласиться.

Для людей использующих флоат для подсчета тиков в прерывании, лучше вообще забыть, а вот когда научатся считать все в целочисленном виде (года через 2), можно начать вспоминать smile.gif


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 3 2010, 09:02
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Marian @ Jun 2 2010, 22:25) *
осталось отключить оптимизацию компилятора.

Надо предложить модераторам ввести в правила пункт: "запрещается советовать отключать оптимизацию компиляторов". smile.gif

Сообщение отредактировал 777777 - Jun 3 2010, 09:03
Go to the top of the page
 
+Quote Post
Marian
сообщение Jun 3 2010, 11:15
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(_Pasha @ Jun 3 2010, 03:23) *
Нафига ея отключать? smile.gif

Так эта дла тага, чтабы прогу пооотлаживать.

С включенной оптимизацией по С коду сильно не попрыгаешь.
Да и сама переменная может в регистрах проца оказаться.

Весь вопрос в том
Цитата
Как сделать чтобы отображал?
, а какой тип переменной использовать, со временем, человек сам научится.
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 4 2010, 04:12
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Marian @ Jun 3 2010, 15:15) *
Так эта дла тага, чтабы прогу пооотлаживать.

А с оптимизацией она не отлаживается?
Цитата(Marian @ Jun 3 2010, 15:15) *
С включенной оптимизацией по С коду сильно не попрыгаешь.

Это еще почему? Вообще-то отлаживать ее надо в том виде, в каком ей предстоит работать.
Цитата(Marian @ Jun 3 2010, 15:15) *
Да и сама переменная может в регистрах проца оказаться.

И что? Это вызывает какие-то проблемы? Я, например, наоборот - огорчаюсь если какая-то переменная оказывается в памяти и начинаю думать что бы такого сделать, чтобы компилятор перенес ее в регистр.
Go to the top of the page
 
+Quote Post
Hmm
сообщение Jun 4 2010, 18:23
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 329
Регистрация: 22-06-04
Пользователь №: 124



Цитата
А с оптимизацией она не отлаживается?
А вы не понимаете, что этим хотели сказать?
Цитата
Это еще почему? Вообще-то отлаживать ее надо в том виде, в каком ей предстоит работать.
Работать "она" может и без оптимизации.
Цитата
Я, например, наоборот - огорчаюсь если какая-то переменная оказывается в памяти и начинаю думать что бы такого сделать, чтобы компилятор перенес ее в регистр.
Вы, наверное, хотели-бы в идеале использовать uC без RAM ...
777777
Мой флуд смахивает на ваш cranky.gif


--------------------
Талант не пропить ...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 4 2010, 20:26
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(777777 @ Jun 3 2010, 12:02) *
Надо предложить модераторам ввести в правила пункт: "запрещается советовать отключать оптимизацию компиляторов". smile.gif

Хорошее предложение smile.gif. Одобряю.



Цитата(Hmm @ Jun 4 2010, 21:23) *
А вы не понимаете, что этим хотели сказать?

Я понимаю sad.gif отлаживать не общую работоспособность чего-либо а 2x2=? sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Marian
сообщение Jun 5 2010, 12:24
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(777777 @ Jun 4 2010, 07:12) *
А с оптимизацией она не отлаживается?


Не отлаживается. Работать прога сможет, но как вы узнаете, не прибегая к ассемблеру, что она конкретно, в этот момент делает? Если у вас есть другие, более удобные методы отладки, поделитесь.

Цитата
Вообще-то отлаживать ее надо в том виде, в каком ей предстоит работать.

Если вам так надо, пожалуйста. Но гораздо удобнее отладить прогу "как она есть", а перед заливкой в проц., скомпилировать с включенной оптимизацией.

Цитата(zltigo @ Jun 4 2010, 23:26) *
Хорошее предложение smile.gif. Одобряю.

Интересно, чем оно вам понравилось?
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 5 2010, 14:22
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Marian @ Jun 5 2010, 16:24) *
Не отлаживается. Работать прога сможет, но как вы узнаете, не прибегая к ассемблеру, что она конкретно, в этот момент делает?

Убей не пойму - а что мешает прибегнуть к ассемблеру? Но и это требуется крайне редко - я обычно отлаживаю программу прямо в сишном тексте, отладчик позволяет шагать по строкам прогрммы, смотреть значения переменных и т.п. - что еще нужно для оладки? Да, иногда компилятор перетасовывает программу и при пошговой отладке она иногда "прыгает" в неожиданные места. Но ничего страшного не происходит, при ближайшем рассмотрении становится понятен ход "мыслей" оптимизатора .
Цитата(Marian @ Jun 5 2010, 16:24) *
Если вам так надо, пожалуйста. Но гораздо удобнее отладить прогу "как она есть", а перед заливкой в проц., скомпилировать с включенной оптимизацией.

Если ваша программа нагружает процессор на 1%, то наверное можно. Но обычно процессор выбирается так, чтобы он был загружен на 20...30%, а если проводится а поскольку отключение оптимизации делает программу медленнее раз в 5...10, то она становится практически неработоспособной - не успевает.
То же самое относится к ее размеру - если без оптимзации она не влезет в память - как ее отладить?
Цитата(Marian @ Jun 5 2010, 16:24) *
Интересно, чем оно вам понравилось?

Наверное тем, что совет отключать оптимизацию является вредным.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 5 2010, 14:23
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Marian @ Jun 5 2010, 15:24) *
Интересно, чем оно вам понравилось?

Правильным подходом к делу, при котором прежде всего нужно думать и писать программы, а не исследовать отладчиком что же это такое получилось и латать некий исходник из
каких-то строчек. Это для латания жизненно необходимо соответствие какой-то отдельной строчки, какому-то отдельному "результату", ибо латающий практически никогда не уверен, в том, что он написал и уж тем более не представляет, как его понял (а действительно 2+2=4?) компилятор. При этом его мышление действительно ограничено разрозненными строчками и проанализировать десяток-другой уже не под силу. Вот на такой благодатной почве и растут не выпускающие отладчика из рук враги оптимизаций, ибо латанный-перелатанный подогнанный под ответ в окошке отладчика исходник при оптимизации рассыпается и тут уж начинаются обильные байки о глюках компиляторов smile.gif sad.gif. Если человек может с уверенностью без ошибок написать десяток-другой строчек, а в том случае, если и ошибся банально их прочитать и найти ошибку, то оптимизация у него включена и настроена с самого начала. Ну а уж про критические по времени исполнения куски кода вообще и говорить нечего.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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