Страница 1 из 1

Проблема с компиляцией прошивки для RC5 декодера на Tiny2313

Добавлено: Вс апр 19, 2009 19:22:18
Виталик
При открытии С-файла при помощи CodeVisionAVR компиляция не возможна (кнопочки неактивные). Пробовал WinAVR но там выдается сообщение об ошибке №2.
Устройство которое я хочу спаять: http://avru.cwx.ru/project/rc5_decoder_na_tiny2313.html - (прошивка там же).

Добавлено: Вс апр 19, 2009 19:36:11
Krik99
Какая версия Code Vision ?

Добавлено: Вс апр 19, 2009 19:41:52
Виталик
v 1.25.9

Re: Проблема с компиляцией прошивки для RC5 декодера на Tiny

Добавлено: Вс апр 19, 2009 20:33:44
Telek
Виталик писал(а):При открытии С-файла при помощи CodeVisionAVR компиляция не возможна (кнопочки неактивные).
Компилировать нужно проект(.prj). Без проекта компилироваться с-файл не будет.

Добавлено: Вс апр 19, 2009 21:01:30
Виталик
Что мне выбрать при создании проекта?
Чип и частоту я задал.
Порты A,B,D всё настроить на Out.
А с IRQ & Timers ничего не трогать
Всё верно?
Изображение
После создания можно будет просто заменить генерируемый CVAVR код на исходник на С?

Добавлено: Вс апр 19, 2009 21:10:31
Telek
Виталик писал(а):Что мне выбрать при создании проекта?
Чип и частоту я задал.
Собственно нужен чип и частота. Остальное все есть в с-файле. Можно просто создать проект и добавить в него с-файл или создать проект с генерацией кода в с-файле и потом заменить.

Добавлено: Вс апр 19, 2009 21:28:13
ikarab
Вот нормально скомпилилось сразу в CVAVR 1.25.9 - пользуйтесь. Декодер RC5 в CVAVR

Добавлено: Пн апр 20, 2009 09:22:25
Виталик
Спасибо, ikarab, я уже сам понял как получить НЕХ-файл, но я откомпилировал ваш проект и файлы получились одинаковы - теперь точно уверен, что прошивка не подведет.
Появился вопрос: семисегментные индикаторы с общим анодом или катодом? - насколько я знаю это должно отределяется прогр. МК

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

#define digit0 PORTD.0      //питание дисплея
#define digit1 PORTD.3      //питание дисплея

flash char digits[] = {     //массив с цифрами
0b01010000, //0
0b01011111, //1
0b00110010, //2
0b00010110, //3 
0b00011101, //4
0b10010100, //5
0b10010000, //6
0b01011110, //7
0b00010000, //8
0b00010100 //9
};   

Добавлено: Пн апр 20, 2009 18:31:51
Aheir
А как Вы сами думаете, если в коде, зажигающем "0" - только две "1" содержатся? Значит, сегменты зажигаются нулем, т.е. индикаторы с общим анодом. Кстати, схема подключения индикаторов не лучшая, на мой взгляд...

Добавлено: Пн апр 20, 2009 19:46:10
Виталик
Значит, сегменты зажигаются нулем
Это прошарил но ...э... анод или катод, левая рука или правая - у меня всегда были проблемы с этим :))
А как лутше подключить? Через транзисторы?

Добавлено: Пн апр 20, 2009 22:29:33
Krik99
Если говорить о правельности подключения LED дисплей, надо все сегменты включить через резисторы 100..300 ом, разряды дисплея включить через транзисторы. Я подключал дисплей так, так как это для примера и демонстрации кода, к томуже макетка у меня так сбрана.

Добавлено: Вт апр 21, 2009 11:45:33
Виталик
Поискал схемы подключенчия индикаторов и нашол вот это http://b.foto.radikal.ru/0603/b9943b51646d.gif
Я тоже могу включить по такой схеме? -
и взять номинал резистора подключенного на базу и транз. КТ361А
а на сегменты повесить резисторы по 180 Ом

Добавлено: Вт апр 21, 2009 13:24:28
Krik99
От резисторов на сегментах зависит яркость дисплея. Можно и по этой схеме включить, но так как используються транзисторы КТ361А pnp они открываються на лог. 0, надо будет переписать код развёртки на этот:

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

case 0:{digit1=1;digit0=0;break;};  //подаём питание на 1
case 1:{digit0=1;digit1=0;break;};  //подаём питание на 2