Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отладочная печать...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
jdhfdg
Можно ли как-то в Keil uVision из текста программы вывести в окно Output текущие значения переменных?
Что-то типа отладочной печати.
Палыч
Цитата(jdhfdg @ Oct 19 2011, 10:28) *
Можно ли как-то в Keil uVision из текста программы вывести в окно Output текущие значения переменных?
Вы желаете получить отладочную печать во время работы симулятора? Почему в это окно? Есть же окно Watches... Желаете видеть изменение во времени? Есть окно Serial Window...
Чтобы что-то Вам посоветовать, Вам нужно предоставить больше информации: что хотите, почему именно так, и тд...
jdhfdg
Требуется увидеть, как менялось значение переменной во времени (чтобы потом в Excel-е нарисовать график).
Окно watches выводит только текущее значение переменной, а мне нужен список значений, которые были у этой переменной.
Палыч
Цитата(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
редактор
Если По п1. Можно сформировать массив и складывать туда необходимое значение по мере поступления. Далее команда SAVE отладчика.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.