Если массив пустой, то проблема где-то в другом месте. Пи использовании printf, не понимающего форматов с плавающей точкой, эти форматы просто игнорируются, но всё остальное из форматной строки проходит. В случае с Вашей форматной строкой в массиве должно было бы оказаться либо "f+-f" либо как минимум то, что не имеет отношения к форматам, т.е. просто "+-", сейчас уже не помню — давно уже не забывал сразу включить нужный PRINTF_LIB Попробуйте просто
Код:
sprintf (ADCOut,"qwerty");
в массиве хоть что-то окажется?
_________________ Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
да отлично там все работает в студии Watch-окно не всегда своевременно обновляется может, причина в этом?
Уже замечал, особенно массивы, для этого я сначала сворачиваю его в окне Watch, потом разворачиваю. После разворачивания всегда обновляется. А вот почему там совершенно пусто - я уже сам задумался, ранее хотябы +- выводило правильно...Шаз буду копаться...
_________________ ...Им бы пить и жрать в три горла день и ночь, Будь ты трижды гений - им нельзя помочь... \\Ария\\Игра с огнем
Все, походу замучил я функцию sprintf окончательно, а сним и какие-то конфиг файлы, теперь эти функции не работают вовсе, т.е. не выводят даже текст "sadfsadf". Вот, буду студию переставлять...
_________________ ...Им бы пить и жрать в три горла день и ночь, Будь ты трижды гений - им нельзя помочь... \\Ария\\Игра с огнем
Скачал новую студию, установил - все заработало, только как-то по -странному. Там у меня цикл. ПРи первом вызове функции - в массиве ничего нет, при втором-все работает отлично. Странно... К тому же, при нажатии F10 заходит в подпрограммы, ИМХО глюков студии еще больше появилось
_________________ ...Им бы пить и жрать в три горла день и ночь, Будь ты трижды гений - им нельзя помочь... \\Ария\\Игра с огнем
все у вас с правильного захода заполняется, это "нюансик" отладчика, который с оптимизатором не дружит - показывает иной раз не ту строку в исходнике, которая выполняется на самом деле.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Ну и фик с ним, с оптимизатором, хотя немного раздражает, когда стрелка пропадает, главное - все РАБОТАЕТ!!! Я доволен как стадо слонов! Огромное человеческое СПАСИБО!
_________________ ...Им бы пить и жрать в три горла день и ночь, Будь ты трижды гений - им нельзя помочь... \\Ария\\Игра с огнем
_________________ Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Помогите разобраться, может кто сталкивался или знает: до некоторых пор пользовался CodeVision AVR v1.25.9, но после перехода на версию 2.04.4а появилась такая проблема. Файлы .hex создаются не работоспособными, т.е. если один и тот же проект скомпилировать в старой версии, а затем новой, то на старой версии работает, на новой нет.
Подскажите пожалуйста как правильно сделать? Восьмизначное число нужно перевести в двоичную систему счисления и с конца передать на например PORTA.0 включая нули в старших битах. На PORTA.1 будут подаватся стробирующие импульсы.
Обязательно PORTA.1? Если нет, используйте аппаратный USART или SPI.
Схема уже спаяна. Данные нужно передавать на регистры здвига: PORTA.2 - данные, PORTA.1 - запись в регистр, PORTA.0 - вывод данных с регистра. Я просто когда паял думал что это не сложно реализовать, и вот запнулся.
P.S. Можно ли в CodeVisionAVR присвоить это число какой-нить регистровой паре (перед этим поделить число на части чтоб влезло) и потом пройтись по битам и как это реализовать, или я захотел просто отделаться?
Да не так уж и сложно. десяток строк кода... Только как это понимать? :
Цитата:
Восьмизначное число нужно перевести в двоичную систему счисления и с конца передать
То есть нужно передать 32 битное число? Или вы имели виду 8 знаков уже после перевода в бинарную систему? Переспрашиваю т.к. обычно используется 8 или 16 бит…
Да нужно передать 32 битное число - восемь знаков от 0 до 9. И ещо вопрос: Если это всё сделать в обработчике преривания таймера по сравнению, не будет ли это долго для прерывания? Контроллер мега16 пока на 1 Мгц, но можно и повысить частоту если надо. Передавать думаю каждые 30 милисекунд.
"и с конца передать" дак это начиная с младшего или старшего бита? Конца то два... Какое активное состояние стробирующих импульсов? Устанавливать данные по фронту или спаду? Что делать с третьим выводом? Он типо как SS у SPI, или просто, после передачи 32 бит, строб на него подать? И какое у него активное состояние?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 316
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения