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

 
 
 
Reply to this topicStart new topic
> Отладочная печать...
jdhfdg
сообщение Oct 19 2011, 06:28
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 25-09-11
Пользователь №: 67 366



Можно ли как-то в Keil uVision из текста программы вывести в окно Output текущие значения переменных?
Что-то типа отладочной печати.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 19 2011, 06:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(jdhfdg @ Oct 19 2011, 10:28) *
Можно ли как-то в Keil uVision из текста программы вывести в окно Output текущие значения переменных?
Вы желаете получить отладочную печать во время работы симулятора? Почему в это окно? Есть же окно Watches... Желаете видеть изменение во времени? Есть окно Serial Window...
Чтобы что-то Вам посоветовать, Вам нужно предоставить больше информации: что хотите, почему именно так, и тд...
Go to the top of the page
 
+Quote Post
jdhfdg
сообщение Oct 19 2011, 11:18
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 25-09-11
Пользователь №: 67 366



Требуется увидеть, как менялось значение переменной во времени (чтобы потом в Excel-е нарисовать график).
Окно watches выводит только текущее значение переменной, а мне нужен список значений, которые были у этой переменной.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 19 2011, 12:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(jdhfdg @ Oct 19 2011, 15:18) *
Требуется увидеть, как менялось значение переменной во времени
Имхо, всё зависит от того, что Вы понимаете под "во времени"...
1. Процедура расчета некой переменной запускается периодически и "во времени" - это некий порядковый номер запуска этой процедуры. В этом случае самый "дешевый" вариант - вывод значения переменной (в символьном виде - ASCII, с переводом строки) по UART. Смотрим вывод в окне "Serial Window". Если UART в Вашем проекте задействован под другие нужды - на время отладки выбираем МК с двумя UART "на борту", и вывод осуществляем во второй UART (смотрим, естественно, в окно "Serial Window 2"). Скорость этого отладочного UART устанавливаем максимально возможную. У этого метода есть существенный недостаток: окно "Serial Window" нельзя скопипастить... Для устранения этого есть решение, но со своими заморочками: назначить UART МК на один из СОМ-портов с помощью команд отладчика Keil (ASSIGN и MODE) и на другом ПК получать значения с помощью терминалки. Можно обойтись одним ПК, если поставить виртуальный мост на СОМ-порты...
2. "Во времени" - в любой момент значение переменной может быть изменено и необходимо это отслеживать, время засекать в микросекундах/тактах работы МК от запуска. В этом случае прийдется осваивать Advanced Generic Simulator Interface (AGSI). У Atmel'а по этому интерфейсу есть AppNote 154. AGSI - штука хорошая, позволяет получить любую "разумную" информацию, однако освоение его займет отнюдь не пару дней, написание своей DLL для получения значения переменной и записи её в файл, а также отладка этой DLL - тоже времени потребует...

Подведём итог: предложенные методы - не просты и, наверное, самый-самый "дешевый" метод - окно "Watches", откуда переносить значение переменной "по одному за раз" либо на бумагу, либо копипастом.

P.S. По поводу "заморочек" с невозможностью копипаста окна "Serial Windows", я, слегка погорячился. Есть более простой метод записать информацию этого окна в файл: команда отладчика SLOG
Go to the top of the page
 
+Quote Post
редактор
сообщение Oct 25 2011, 12:33
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Если По п1. Можно сформировать массив и складывать туда необходимое значение по мере поступления. Далее команда SAVE отладчика.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 07:23
Рейтинг@Mail.ru


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