diff options
| -rw-r--r-- | SPI.c | 100 | ||||
| -rw-r--r-- | SPI.h | 2 | 
2 files changed, 96 insertions, 6 deletions
| @@ -29,45 +29,135 @@          {              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] = (write << 8) | (!write << 7) | 0b000000;              WriteBuffer[1] = (0xFF << Ohm_150) ^ (0xFF);              WriteBuffer[3] = (0xFF << (Ohm_150 - 8)) ^ (0xFF); -            WriteBuffer[5] = (0xFF << (Ohm_68  - 4)) ^ (0xFF) + (testLED << 8); -            if (Ohm_68 == 5) WriteBuffer[3]+= 0b10000000; +            WriteBuffer[5] = (0xFF << (Ohm_68  - 4)) ^ (0xFF) | (testLED << 8); +            if (Ohm_68 == 5) WriteBuffer[3]|= 0b10000000;          }          void Message_BIM(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b000001; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_MAPIN0(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b000100; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_MAPIN1(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b000101; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_INST(void) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x46; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_DAGIOL(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b001000; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_DAGOSM(void) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x49; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_DAGOLON(void) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x4A; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_DAGOLONEN(uint8_t outputs[3]) -      +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b001011; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            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]; +        }          void Message_HWCROCL(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = 0x8D; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_HWCRPWM(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b001110; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_PWMCR0(uint16_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | (0b00010000); +            WriteBuffer[0] |= ((outputs[0] << 6) >> 14; +            WriteBuffer[2] |= ((outputs[1] << 6) >> 14; +            WriteBuffer[4] |= ((outputs[3] << 6) >> 14; +            WriteBuffer[1] = (outputs[0] << 8) >> 8; +            WriteBuffer[3] = (outputs[1] << 8) >> 8; +            WriteBuffer[5] = (outputs[2] << 8) >> 8; +        }          void Message_PWMCR1(uint16_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | (0b00010100); +            WriteBuffer[0] |= ((outputs[0] << 6) >> 14; +            WriteBuffer[2] |= ((outputs[1] << 6) >> 14; +            WriteBuffer[4] |= ((outputs[3] << 6) >> 14; +            WriteBuffer[1] = (outputs[0] << 8) >> 8; +            WriteBuffer[3] = (outputs[1] << 8) >> 8; +            WriteBuffer[5] = (outputs[2] << 8) >> 8; +        }          void Message_PWMOUT(uint8_t outputs[3]) +        { +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b100100; +            WriteBuffer[1] = outputs[0]; +            WriteBuffer[3] = outputs[1]; +            WriteBuffer[5] = outputs[2]; +        }          void Message_PWMMAP(uint8_t outputs[3])          { -            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) + (!write << 7) + 0b100101; +            WriteBuffer[0] = WriteBuffer[2] = WriteBuffer[4] = (write << 8) | (!write << 7) | 0b100101;              WriteBuffer[1] = outputs[0];              WriteBuffer[3] = outputs[1];              WriteBuffer[5] = outputs[2]; @@ -8,7 +8,7 @@  #ifndef XC_SPI_H  #define	XC_SPI_H  -#include "mssp1_spi.h" +#include "mcc_generated_files/mssp1_spi.h"  #define MY_BUFFER_SIZE 6 //3 Devices, each of which is 16 bit. (16/8)*3=6 | 
