Ок, спасибо за предложенный вариант. Возьмем на заметку.
А тот что выше, можно все-же оставить как вариант. Вот буфер только увеличить Вы правы, на случай возможного переполнения.
unsigned char buffer[16];
...
val = 999;
sprintf(buffer,"%3d",val); // Заполняем буфер результатом
...
LCDstring(buffer,3); - выводим в 3 рабочие знакоместа, 0 отсекаем
А так то все скромненько работает, без замеченных косячков пока .
Но есть еще один момент. Для отображения отрицательных чисел нужно резервировать дополнительное знакоместо, под знак "-". Иначе диапазон отображения будет "-99..999". Это придется учитывать.
добрый день.Есть проект на ATMEGA168.Хочу переделать его на контролер ATMEGA644, так как не хватает входов для добавления других устройств.Практически все работает, кроме отработки RC-5 по входу INT1.Не могу зайти в меню.Не может кто-нибудь подсказать что надо исправить.Исходники прилепил
Как то все сумбурно объяснили.Ничего не понятно. Могу посоветовать добавить матричную клавиатуру и тогда довольно таки много выходов освободится.Забивать 22!!! входа на одну только клаву это как то расточительно.
Можно сделать 5х5 клавиатуру и всего лишь 10 портов будет потрачено.
К тому же на 5 из них еще в довесок можно будет подключить по 5 светодиодов на каждый дополнительный вывод.
vitalik_1984 писал(а):Как то все сумбурно объяснили.Ничего не понятно. Могу посоветовать добавить матричную клавиатуру и тогда довольно таки много выходов освободится.Забивать 22!!! входа на одну только клаву это как то расточительно.
Можно сделать 5х5 клавиатуру и всего лишь 10 портов будет потрачено.
К тому же на 5 из них еще в довесок можно будет подключить по 5 светодиодов на каждый дополнительный вывод.
Дело не в клавиатуре.Ну освобожу я 2-3 ноги, их мне все равно не хватит.Проц ATMEGA644 меня устраивает .В не рабочем варианте нет управления с пульта,поэтому не могу зайти в меню для управления и настройки.
Знать бы еще что это ваше устройство должно делать, чтобы можно было сравнивать с тем что есть в коде.К тому же не видя схемы.
Вообще я посмотрел какой то код не согласованный как будто из разных мест нахватали.
вот например
#define BIT (bit) (1<<bit)
//и тут же следующей строкой пишут
#define Set_bit (port,bit) port|=(0x01<<bit)
//o_O где одинаковость?
// и потом в тексте используют
some_register |=_BV(5);
// нафига тогда дефайн BIT?
PS. Освободится не 2-3 ноги, а сразу 12 с арифметикой видать плохо.Применение матричной клавиатуры становится выгодным после 5 кнопок.Когда их 22 это само напрашивается.
Последний раз редактировалось vitalik_1984 Сб сен 29, 2012 15:23:30, всего редактировалось 1 раз.
FreshMan писал(а):подмкажите пожалуйста чем WinAvr лучше от CVAVR ?
Я полагаю, что, если бы CVAVR не имел никаких плюсов, про него давным-давно уже забыли бы. Поскольку на самом деле его продолжают использовать множество людей, наверное, некорректно ставить вопрос таким образом.
Лично для меня WinAvr лучше тем, что построен на базе GCC и, следовательно, достаточно близко соответствует стандартам языка, а также не слишком отличается от реализаций на других платформах. Это дает мне возможность выполнять один и тот же код на языке C, например, на IBM PC и Atmel AVR. Для меня это крайне важно. Для тех, кому это не нужно, это вряд ли будет существенным плюсом.
Мой опыт общения с CVAVR очень невелик, но мне показалось, что порог вхождения при его использовании гораздо ниже, чем для WinAvr. Поэтому многие новички предпочтут именно его, а основательно подсев, не найдут веских причин менять инструмент.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Нет. Нужно много читать по С, и перелопачивать интернета, чтоб правильно написать код на WINAVR, если не было опыта в написании программ. Но за то вы буде вознаграждены тем, что когда напишете сами рабочий исходный код, вы будете понимать каждую строчку в этом коде, и тем самым к вам придет понимание в С.
PS: Но генератор кода тоже хорошо, можно поглядеть как правильно должно все быть написанно, когда не знаешь как правильно писать.
Последний раз редактировалось DruidCat Пн окт 08, 2012 11:30:40, всего редактировалось 1 раз.
Я чтоб в регистрах ковыряться, пользуюсь учебником : Евстифеев А. В_Микроконтроллеры AVR семейства Mega. Руководство пользователя
Там все регистры есть, которые мне нужны. А именно для ATMega8.
Для Atmega16 настроить (INT1) MCUCR
Разрешите прерывания (INT1) в регистре GICR
Для других процов ищите по аналогии, просто названия регистров могут быть другие.
Подскажите где рыть пож.....
Раньше у меня закладки файлов в AVRSTUDIO выводились без указания полного пути.
Файлов штук 5 помещалось в низу экрана, было удобно скакать туда сюда, а после переустановки винды, стало так как на картинке, запарился прокруткой нужный файл на экран продвигать.
Подскажите где есть настройка вида закладок, чтобы убрать полный путь.....
Меню Tools (это ж надо туда затолкать!) / Options / General / Filetabs: выпадающий список, выбрать Filename Only
После чего сужается закладка текущего файла, но потом все становятся короткими.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.