Проблема следующая: после импульса LE светодиоды лишь кратковременоо моргают и тишина...
Кто имеет практический навык общения с этим зверем откликнитесь.

Код: Выделить всё
//LE - заменить на фактически подключеный пин
#define SET_LE(state) (PORTB.2 = state)
#define GET_LE PINB.2
#define DIR_LE(direction) DDRB.2 = direction
//CLK - заменить на фактически подключеный пин
#define SET_CLK(state) (PORTB.1 = state)
#define GET_CLK PINB.1
#define DIR_CLK(direction) DDRB.1 = direction
//SDI - заменить на фактически подключеный пин
#define SET_SDI(state) (PORTB.0 = state)
#define GET_SDI PINB.0
#define DIR_SDI(direction) DDRB.0 = direction
#define HIGH 0x01
#define LOW 0x00
#define OUT 0x01
#define IN 0x00
void MBI5039_Init(void) //инициализация
{
DIR_LE(OUT); //установка направления линии LE
SET_LE(LOW); //вывод 0 на линию LE, далее аналогично для остальных линий
DIR_CLK(OUT);
SET_CLK(LOW);
DIR_SDI(OUT);
SET_SDI(LOW);
}
void MBI5039_Light(unsigned char N) // зажигается нужное кол-во диодов
{
unsigned char i;
for (i=0;i<16;i++)
{
if (i<N) SET_DIO(HIGH);
else SET_DIO(LOW);
SET_CLK(HIGH);
SET_CLK(LOW);
}
SET_LE(HIGH);
SET_LE(LOW);
}