|
@@ -44,14 +44,27 @@ static void spi_SendByte (uint8_t DataByte) {
|
|
|
|
|
|
}
|
|
|
|
|
|
-void MAX7219_writeData(uint8_t data_register, uint8_t data)
|
|
|
+void MAX7219_writeData(uint8_t reg, uint8_t data)
|
|
|
{
|
|
|
- MAX7219_LOAD0;
|
|
|
- // Send the register where the data will be stored
|
|
|
- spi_SendByte(data_register);
|
|
|
- // Send the data to be stored
|
|
|
- spi_SendByte(data);
|
|
|
- MAX7219_LOAD1;
|
|
|
+ MAX7219_LOAD0; // îïóñòèëè çàù¸ëêó
|
|
|
+// spi_SendByte(reg);
|
|
|
+// spi_SendByte(data);
|
|
|
+
|
|
|
+ // software spi
|
|
|
+ uint8_t i; // ñ÷åò÷èê áèò
|
|
|
+ uint16_t sdata = (reg<<8) || data;
|
|
|
+ for (i=16; i!=0; i--) {
|
|
|
+ PinRes(PIN_CLK); // âûäàëè ñòðîá
|
|
|
+ if (bit_is_set(sdata,15)) { // åñëè ñòàðøèé áèò == 1
|
|
|
+ PinSet(PIN_DIN); // MOSI = 1
|
|
|
+ } else { // åñëè ñòàðøèé áèò == 0
|
|
|
+ PinRes(PIN_DIN); // MOSI = 0
|
|
|
+ }
|
|
|
+ PinSet(PIN_CLK); // çàù¸ëêíóëè ñòðîá
|
|
|
+ sdata <<= 1; // ñäâèã âëåâî íà 1 áèò
|
|
|
+ }
|
|
|
+
|
|
|
+ MAX7219_LOAD1; // ïîäíÿëè çàù¸ëêó
|
|
|
}
|
|
|
|
|
|
void MAX7219_Init(void) {
|