On some pins of 74hc595 measured +5V after power-on. But there are must be 0V.
I have insert this code to application source
void Init(void) __wparam
{
unsigned char i;
//
...
for(i=0;i<128;++i) {
MIOS_DOUT_PinSet0(i); // Set ALL DOUT pin to 0
}
}
...
void MPROC_NotifyReceivedEvnt(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparam
{
// check if note on or off event at channel 1 has been received
if( evnt0 == 0x80 || evnt0 == 0x90 ) {
// if note off event: force evnt2 to 0 for easier handling of 'LED off'
if( evnt0 == 0x80 )
evnt2 = 0;
// number of DOUT pin in evnt1, value in evnt2
MIOS_DOUT_PinSet(evnt1, evnt2 ? 0x01 : 0x00);
}
if (evnt0 == 0x90 && evnt1 == 0x40 && evnt2 == 0x01) {
for(i=0;i<128;++i) {
MIOS_MIDI_TxBufferPut(0x90); // Send to PC DOUT pin state
MIOS_MIDI_TxBufferPut(i); //
MIOS_MIDI_TxBufferPut(MIOS_DOUT_PinGet(i)); //
}
}
and after send “90 40 01” to device i get this
90 00 00
90 01 00
90 02 00
...
90 40 01
...
90 7F 00
If I send any 90 xx 01 - on DOUT pins nothing is change.
DOUT module tested for bad soldering - all elements soldered good.