Неинициализированная переменная-ошибка

AVR версия программы

Неинициализированная переменная-ошибка

Сообщение rv3sbq (Ромик) » 27 окт 2012, 16:54

Подскажите пожалуйста где проблема,сделал проектик измерения ацп с последующим выводом на экран подобие из видеопримера вольтметра с этого сайта.Решил сделать обход вывода необновляемых данных, чтоб дисплей не моргал.Запустил симуляцию все работает и обход тоже,но в ошибках пишет неинициализированная переменная.Проект в 5 версии сделан,но что интересно если его в точности повторить в 4 версии подобной ошибки нет.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: rv3sbq
Имя: Ромик
(Рязань)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Неинициализированная переменная-ошибка

Сообщение mim (mim) » 27 окт 2012, 17:18

Когда происходит проверка условия, то переменная "р" к этому моменту означена через макрос ADC, а переменная "o" еще ничему не равна, значение в ней может быль любое (то что будет в ОЗУ после включения, а там может быть мусор). Переменную "o" нужно означить перед циклом, например "о=0". Переменные можно изначально не означивать, но если они стоят в условиях, то должны иметь значение. Иначе программе (в данном случае отладчику, а при компиляции компилятору) непонятно как же провести сравнение...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Неинициализированная переменная-ошибка

Сообщение rv3sbq (Ромик) » 27 окт 2012, 17:35

Спасибо! Все оказалось действительно просто, присвоил значение о=0 не переделывая аогоритм и ошибка исчезла. :D Получается пятая версия поумнее будет!
Ник: rv3sbq
Имя: Ромик
(Рязань)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Неинициализированная переменная-ошибка

Сообщение kindofsky (kindofsky) » 28 окт 2012, 06:05

Привет коллеги. Маленькое добавление. А вдруг кто то не знает...
Там в 5й версии есть поле Initial Value. Это начальное значение переменной.
Если там установить требуемое значение, то переменная стартует с этим значением.
См. Скриншот.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: kindofsky
Имя: kindofsky
(Москва)
Супер Гуру
Супер Гуру
Информация о пользователе
Вернуться наверх

Re: Неинициализированная переменная-ошибка

Сообщение rv3sbq (Ромик) » 28 окт 2012, 18:37

Да я именно так и поступил,удобно сразу при создании переменной и начальное значение присвоить. Немного усложнил проект и вот вопросик возник, при компиляции проекта выдает ошибку в вычислении с помощью функции преобразования переменной флоат в строковую чтоб ее вывести на экран. Можно флоат сразу на экран вывести но запятых нету.Но почему то ошибки при семуляции нет, а при компиляции есть, на работу вроде не влияет считает правильно.Может как то по другому флоат на экран можно вывести?
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: rv3sbq
Имя: Ромик
(Рязань)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Неинициализированная переменная-ошибка

Сообщение mim (mim) » 28 окт 2012, 19:02

rv3sbq писал(а): выдает ошибку в вычислении с помощью функции преобразования переменной флоат в строковую

Это не ошибка, а предупреждение. Советую найти описание компилятора AVR-GCC и почитать...
Предупреждения на некорректную работу с указателями на массив (Матриксы так пишут... они совсем не работают с указателями...), это обсуждалось здесь пост 8114
rv3sbq писал(а): Может как то по другому флоат на экран можно вывести?

Можно, ищи на старом форуме примеры целочисленных вычислений, особенно в теме про датчик 18b20. Там же, как вывести запятую на ЖКИ, для одного знака и двух после нее...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Неинициализированная переменная-ошибка

Сообщение rv3sbq (Ромик) » 28 окт 2012, 19:09

Все же похоже это ошибка. В симуляции все проходит хорошо, а в железе не работает выдает непонятные цифры даже близко не подходящие к правде. Ругается на функцию преобразования в строку при компиляции,как мне кажется чип авр не поддерживает данную функцию как и многие другие которые фловкод предлагает.Почитал хелп там в калькуляции написан список функций только для авр и там строками и флоатами ваще не пахнет. :hlp: .Похоже надо все переделывать искать то что авр проглотит и без функций.
Ник: rv3sbq
Имя: Ромик
(Рязань)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх


Вернуться в Flowcode AVR

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей