WinAvr в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

Сообщение rs39 »

Ок, спасибо за предложенный вариант. Возьмем на заметку.
А тот что выше, можно все-же оставить как вариант. Вот буфер только увеличить Вы правы, на случай возможного переполнения.

Код: Выделить всё

        unsigned char buffer[16];
        ...
        val = 999;
        sprintf(buffer,"%3d",val); // Заполняем буфер результатом
        ...
        LCDstring(buffer,3); - выводим в 3 рабочие знакоместа, 0 отсекаем
А так то все скромненько работает, без замеченных косячков пока :).
Но есть еще один момент. Для отображения отрицательных чисел нужно резервировать дополнительное знакоместо, под знак "-". Иначе диапазон отображения будет "-99..999". Это придется учитывать.
Реклама
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Сообщение xaker66 »

добрый день.Есть проект на ATMEGA168.Хочу переделать его на контролер ATMEGA644, так как не хватает входов для добавления других устройств.Практически все работает, кроме отработки RC-5 по входу INT1.Не могу зайти в меню.Не может кто-нибудь подсказать что надо исправить.Исходники прилепил
Вложения
Preamp.rar
сама схема
(212.14 КБ) 207 скачиваний
Preamp1.rar
рабочий вариант
(487.05 КБ) 200 скачиваний
Копия (2) Preamp1.rar
не рабочий вариант
(851.82 КБ) 177 скачиваний
Последний раз редактировалось xaker66 Сб сен 29, 2012 12:15:30, всего редактировалось 1 раз.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Как то все сумбурно объяснили.Ничего не понятно. Могу посоветовать добавить матричную клавиатуру и тогда довольно таки много выходов освободится.Забивать 22!!! входа на одну только клаву это как то расточительно.
Можно сделать 5х5 клавиатуру и всего лишь 10 портов будет потрачено.
К тому же на 5 из них еще в довесок можно будет подключить по 5 светодиодов на каждый дополнительный вывод.
Контактная информация:
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Сообщение xaker66 »

vitalik_1984 писал(а):Как то все сумбурно объяснили.Ничего не понятно. Могу посоветовать добавить матричную клавиатуру и тогда довольно таки много выходов освободится.Забивать 22!!! входа на одну только клаву это как то расточительно.
Можно сделать 5х5 клавиатуру и всего лишь 10 портов будет потрачено.
К тому же на 5 из них еще в довесок можно будет подключить по 5 светодиодов на каждый дополнительный вывод.
Дело не в клавиатуре.Ну освобожу я 2-3 ноги, их мне все равно не хватит.Проц ATMEGA644 меня устраивает .В не рабочем варианте нет управления с пульта,поэтому не могу зайти в меню для управления и настройки.
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Знать бы еще что это ваше устройство должно делать, чтобы можно было сравнивать с тем что есть в коде.К тому же не видя схемы.
Вообще я посмотрел какой то код не согласованный как будто из разных мест нахватали.
вот например

Код: Выделить всё

#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 раз.
Контактная информация:
Реклама
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Сообщение xaker66 »

управление усилителем. Код писал не я ,т.к.я только учусь ,поэтому некоторые вещи пока не понимаю схему прикреплю в первом посте
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

доброго времени суток
я новичок......., подмкажите пожалуйста чем WinAvr лучше от CVAVR ?
Tell Me The Truth
Опытный кот
Аватара пользователя
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону

Сообщение Goldsmith »

FreshMan писал(а):подмкажите пожалуйста чем WinAvr лучше от CVAVR ?
Я полагаю, что, если бы CVAVR не имел никаких плюсов, про него давным-давно уже забыли бы. Поскольку на самом деле его продолжают использовать множество людей, наверное, некорректно ставить вопрос таким образом.

Лично для меня WinAvr лучше тем, что построен на базе GCC и, следовательно, достаточно близко соответствует стандартам языка, а также не слишком отличается от реализаций на других платформах. Это дает мне возможность выполнять один и тот же код на языке C, например, на IBM PC и Atmel AVR. Для меня это крайне важно. Для тех, кому это не нужно, это вряд ли будет существенным плюсом.

Мой опыт общения с CVAVR очень невелик, но мне показалось, что порог вхождения при его использовании гораздо ниже, чем для WinAvr. Поэтому многие новички предпочтут именно его, а основательно подсев, не найдут веских причин менять инструмент.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

а генератор кода в данной проге есть ?
Tell Me The Truth
Встал на лапы
Аватара пользователя
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Сообщение DruidCat »

Нет. Нужно много читать по С, и перелопачивать интернета, чтоб правильно написать код на WINAVR, если не было опыта в написании программ. Но за то вы буде вознаграждены тем, что когда напишете сами рабочий исходный код, вы будете понимать каждую строчку в этом коде, и тем самым к вам придет понимание в С.
PS: Но генератор кода тоже хорошо, можно поглядеть как правильно должно все быть написанно, когда не знаешь как правильно писать. :))
Последний раз редактировалось DruidCat Пн окт 08, 2012 11:30:40, всего редактировалось 1 раз.
Кот должен прожить жизнь без сожаления.
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

генератор кода нужен для того чтобы настроить все регистры....., например регистры 1 или 2 таймера, регистры АЦП
Tell Me The Truth
Встал на лапы
Аватара пользователя
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Сообщение DruidCat »

Я чтоб в регистрах ковыряться, пользуюсь учебником : Евстифеев А. В_Микроконтроллеры AVR семейства Mega. Руководство пользователя
Там все регистры есть, которые мне нужны. А именно для ATMega8.
Кот должен прожить жизнь без сожаления.
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

хороший учеьник...., жаль только что его уже нельзя найти в печатном виде :(
Tell Me The Truth
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Зато завсегда можно распечатать :))))
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Сообщение DruidCat »

Я обычно делаю отдельные странички с интересующими меня регистрами, и распечатываю их.
Кот должен прожить жизнь без сожаления.
Прорезались зубы
Аватара пользователя
Сообщения: 202
Зарегистрирован: Пн сен 26, 2011 13:48:25
Откуда: Харьков

Сообщение slavokhire5 »

подскажите пожалуйста, что я неправильно инициализирую в прерывании по INT1:
Спойлер

Код: Выделить всё

ISR(INT1_vect)
{
	pressed++; 
}
int main (void) 

{
        .............
        .............
	
	GIMSK		|= _BV(INT1);									// прерывание низким уровнем на INT1
	sei();

        .............
}
в обработчик прерываний не заходит (пользуюсь Proteus 7.10 SP0, оптимизация в компиляторе отключена) переменная pressed объявлена как volatile
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
Вымогатель припоя
Сообщения: 541
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

Для Atmega16 настроить (INT1) MCUCR
Разрешите прерывания (INT1) в регистре GICR
Для других процов ищите по аналогии, просто названия регистров могут быть другие.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

slavokhire5 писал(а):подскажите пожалуйста, что я неправильно инициализирую в прерывании по INT1:
codenamehawk писал(а):Для Atmega16 настроить (INT1) MCUCR
Разрешите прерывания (INT1) в регистре GICR
Так то да, slavokhire5, почему не указали какой камень?Регистры управления могут быть разными.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Сообщение shads »

Подскажите где рыть пож.....
Раньше у меня закладки файлов в AVRSTUDIO выводились без указания полного пути.
Файлов штук 5 помещалось в низу экрана, было удобно скакать туда сюда, а после переустановки винды, стало так как на картинке, запарился прокруткой нужный файл на экран продвигать.
Подскажите где есть настройка вида закладок, чтобы убрать полный путь.....

Изображение
Вложения
закладки.gif
(24.14 КБ) 676 скачиваний
Опытный кот
Аватара пользователя
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна

Сообщение avreal »

Меню Tools (это ж надо туда затолкать!) / Options / General / Filetabs: выпадающий список, выбрать Filename Only
После чего сужается закладка текущего файла, но потом все становятся короткими.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Контактная информация:
Ответить

Вернуться в «AVR»