summaryrefslogtreecommitdiff
path: root/SPI.c
diff options
context:
space:
mode:
authorJoshua Drake <Joshua.Ellis.Drake@gmail.com>2024-05-02 20:10:00 -0500
committerJoshua Drake <Joshua.Ellis.Drake@gmail.com>2024-05-02 20:10:00 -0500
commitdf6a4c2b5711ba7cda3cadd91d4b625c7a06da9d (patch)
treebc1b96884414e90621457f24750d044862ff954b /SPI.c
parentbe85c16280015d192128e85170f79eddd487e447 (diff)
Potentially fixed issues with reading SPI bus, and cleaned up code.
Diffstat (limited to 'SPI.c')
-rw-r--r--SPI.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/SPI.c b/SPI.c
index 1a1b8b6..a6590b4 100644
--- a/SPI.c
+++ b/SPI.c
@@ -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])