diff options
Diffstat (limited to 'SPI.c')
-rw-r--r-- | SPI.c | 40 |
1 files changed, 21 insertions, 19 deletions
@@ -31,7 +31,7 @@ if (Ohm_150 > 15) Ohm_150 = 15; if (Ohm_68 > 5) Ohm_68 = 5; //WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b000000; - WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0b10000000; + WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x80; //WriteBuffer[1] = 0xFF >> (15-Ohm_150); //WriteBuffer[3] = 0xFE << (7-(Ohm_150-8)) | (Ohm_68 - 4); //2WriteBuffer[1] = 0x0F << (4-(Ohm_68 - 1)) | (testLED << 7); @@ -41,23 +41,28 @@ WriteBuffer[5] = 0xff >> (15-Ohm_150); //WriteBuffer[1] = 0xFF; //if (Ohm_68 == 5) WriteBuffer[3]|= 0b10000000; + SPI_slaveSelect(); readData = MSSP1_SPI_Exchange8bitBuffer(WriteBuffer, 6, ReadBuffer); + SPI_slaveDeselect(); } - int active150() + void active(uint8_t *ohm150, uint8_t *ohm68) { WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x40; WriteBuffer[1] = WriteBuffer[3] = WriteBuffer[5] = 0x02; + SPI_slaveSelect(); readData = MSSP1_SPI_Exchange8bitBuffer(WriteBuffer, 6, ReadBuffer); - return bitcount(ReadBuffer[2]&0x7F) + (bitcount(ReadBuffer[4])); //+ bitcount(ReadBuffer[3] << 1)); - } - int active68() - { - WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x40; - WriteBuffer[1] = WriteBuffer[3] = WriteBuffer[5] = 0x02; + SPI_slaveDeselect(); + WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x00; + WriteBuffer[1] = WriteBuffer[3] = WriteBuffer[5] = 0x00; + SPI_slaveSelect(); readData = MSSP1_SPI_Exchange8bitBuffer(WriteBuffer, 6, ReadBuffer); - return ((ReadBuffer[2] & 0x80) + bitcount(ReadBuffer[0] & 0x0f)); + SPI_slaveDeselect(); + ohm150 = bitcount(ReadBuffer[3]&0x7F) + bitcount(ReadBuffer[5]); //+ bitcount(ReadBuffer[3] << 1)); + //ohm150 = bitcount(ReadBuffer[3]);// + ReadBuffer[5] + ReadBuffer[3] + ReadBuffer[1]; + ohm68 = ((ReadBuffer[3] & 0x80)>>7) + bitcount(ReadBuffer[0] & 0x0f); } + void Message_BIM(uint8_t outputs[3]) { WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b000001; @@ -114,16 +119,13 @@ WriteBuffer[5] = outputs[2]; } - void Message_HWCR(uint8_t outputs[3]) - { - //WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b001100; - //WriteBuffer[1] = outputs[0]; - //WriteBuffer[3] = outputs[1]; - //WriteBuffer[5] = outputs[2]; - - WriteBuffer[0] = 0b10001100; - WriteBuffer[1] = 0b10000000; - readData = MSSP1_SPI_Exchange8bitBuffer(*WriteBuffer, 2, *ReadBuffer); + void Message_HWCR() + { + WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x8C; + WriteBuffer[1] = WriteBuffer[3] = WriteBuffer[5] = 0xC0; + SPI_slaveSelect(); + readData = MSSP1_SPI_Exchange8bitBuffer(WriteBuffer, 6, ReadBuffer); + SPI_slaveDeselect(); } void Message_HWCROCL(uint8_t outputs[3]) |