|
|
@ -126,6 +126,31 @@ void max7219_ledMatrixUnsetLED(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// daysichained matrix
|
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
|
|
|
|
spi_ch_t *spiCH;
|
|
|
|
|
|
|
|
uint8_t nDevices;
|
|
|
|
|
|
|
|
}max7219_dm_t;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void max7219_dm_write(
|
|
|
|
|
|
|
|
max7219_dm_t *matrix,
|
|
|
|
|
|
|
|
uint8_t data[][])
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
uint8_t i = 0;
|
|
|
|
|
|
|
|
uint8_t j = 0;
|
|
|
|
|
|
|
|
// TODO: Test it out
|
|
|
|
|
|
|
|
for(i = 0; i < 8; i++) {
|
|
|
|
|
|
|
|
pinWrite(matrix->spiCH->pin, 0);
|
|
|
|
|
|
|
|
for(j = 0; j < matrix->nDevices; j++) {
|
|
|
|
|
|
|
|
spiTrx8BitPolling(matrix->spiCH->spi, i+1); // reg
|
|
|
|
|
|
|
|
spiTrx8BitPolling(matrix->spiCH->spi, data[j][i]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
pinWrite(matrix->spiCH->pin, 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void dispTest(max7219_t *disp)
|
|
|
|
void dispTest(max7219_t *disp)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -135,7 +160,6 @@ void dispTest(max7219_t *disp)
|
|
|
|
delayMs(500);
|
|
|
|
delayMs(500);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void max7219_test_display(spi_ch_t* spi_ch)
|
|
|
|
void max7219_test_display(spi_ch_t* spi_ch)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// set mode to display test
|
|
|
|
// set mode to display test
|
|
|
@ -204,7 +228,7 @@ int main(int argc, char *argv[])
|
|
|
|
0xFF,
|
|
|
|
0xFF,
|
|
|
|
0xAA,
|
|
|
|
0xAA,
|
|
|
|
0xFF,
|
|
|
|
0xFF,
|
|
|
|
0xAA
|
|
|
|
0xAA,
|
|
|
|
0xFF,
|
|
|
|
0xFF,
|
|
|
|
0xAA};
|
|
|
|
0xAA};
|
|
|
|
spi_ch_t spi_test_channel;
|
|
|
|
spi_ch_t spi_test_channel;
|
|
|
|