Разговорились со знакомым радиолюбителем и он мне рассказал о том что есть устройство "Синтезатор частот для любительской коротковолновой радиостанции" схема которого публиковалась в Радио 3-2005. с индикатором реализованном на на регистрах сдвига 74HC595 и ему хотелось заменить этот индикатор и поставить вместо старого индикатора, индикатор на базе MAX7219. Я слегка погорячился и сказал не проблема все можно сделать ставим контроллер подключаем по SPI драйвер и будет работать новый индикатор......
Но не тут то было.
Нарисовал стенд, железа нет, а как-то проверять программу нужно. Прикреплен в виде файла протеуса
По схеме видно что для работы индикатора нужны 3-и сигнала данные (data), синхронизация (Clock) и сигнал для защелки (strobe)
Нашел в инете прошивку для синтезатора sd_ra6lm.HEX загрузил в стенд запускаю ну вроде что-то паказывает
Добавил в стенд ATmega328 завел strobe на itn0, clock на int1 и данные portd.4
Написал код по идее который должен был считывать данные и заполнять буффер и посылать их в MAX7219
Это собственно сам код обработчиков прерываний
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Strobe signal
TrComplete=1;
charcount=0;
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
InputBuff[charcount]=(InputBuff[charcount]<<1) | PIND.4;
if (++bitcount==7){
bitcount=0;
charcount++;
InputBuff[charcount]=0;
}
}
Полный код проект на CodeVision прикреплен к сообщению.
При тестировании работы получилось что индикаторы отображают разную информацию.
Может кто подсказать что не правильно я сделал?
Может у кого есть готовые примеры.
max7219_connect.rar
stend.rar