Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint8_t *txbuf;
- uint8_t *rxbuf;
- int pin = 0;
- void setup(void){
- static uint8_t _txbuf[8] __attribute__ ((section (".sram2")));
- static uint8_t _rxbuf[8] __attribute__ ((section (".sram2")));
- txbuf = _txbuf;
- rxbuf = _rxbuf;
- palSetPadMode(GPIOA,2,PAL_MODE_OUTPUT_PUSHPULL);
- palWritePad(GPIOA,2,1);
- palSetPadMode(GPIOA,3,PAL_MODE_OUTPUT_PUSHPULL);
- palWritePad(GPIOA,3,1);
- }
- void loop(void){
- txbuf[2] = 0b00000000;
- for(int pin=0; pin<8; pin++){
- txbuf[0] = pin < 4 ? 0b01100000 : 0b11100000;
- if (pin % 4 == 0) { // pin == 0 || pin == 4
- txbuf[1] = 0b00000000;
- } else if (pin % 4 == 1) { // pin == 1 || pin == 5
- txbuf[1] = 0b00000010;
- } else if (pin % 4 == 2) { // pin == 2 || pin == 6
- txbuf[1] = 0b00000001;
- } else {
- txbuf[1] = 0b00000011;
- }
- palWritePad(GPIOA,3,0);
- spiSelect(&SPID1); // START SPI
- spiSend(&SPID1,3,txbuf);
- spiReceive(&SPID1,3,rxbuf);
- spiUnselect(&SPID1);
- palWritePad(GPIOA,3,1);
- int z = (rxbuf[1] << 8| rxbuf[0]) << 16;
- if (pin == 0){
- cv1 = z;
- }
- else if (pin == 1){
- cv2 = z;
- }
- else if (pin == 2){
- cv3 = z;
- }
- else if (pin == 3){
- cv4 = z;
- }
- else if (pin == 4){
- cv5 = z;
- }
- else if (pin == 5){
- cv6 = z;
- }
- else if (pin == 6){
- cv7 = z;
- }
- else if (pin == 7){
- cv8 = z;
- }
- chThdSleepMilliseconds(1);
- }
- txbuf[2] = 0b00000000;
- for(int pin=0; pin<8; pin++){
- txbuf[0] = pin < 4 ? 0b01100000 : 0b11100000;
- if (pin % 4 == 0) { // pin == 0 || pin == 4
- txbuf[1] = 0b00000000;
- } else if (pin % 4 == 1) { // pin == 1 || pin == 5
- txbuf[1] = 0b00000010;
- } else if (pin % 4 == 2) { // pin == 2 || pin == 6
- txbuf[1] = 0b00000001;
- } else {
- txbuf[1] = 0b00000011;
- }
- palWritePad(GPIOA,2,0);
- spiSelect(&SPID1); // START SPI
- spiSend(&SPID1,3,txbuf);
- spiReceive(&SPID1,3,rxbuf);
- spiUnselect(&SPID1);
- palWritePad(GPIOA,2,1);
- int z = 0x07FFFFFF - ((rxbuf[1] << 8| rxbuf[0]) << 16);
- if (pin == 0){
- pot1 = z;
- }
- else if (pin == 1){
- pot2 = z;
- }
- else if (pin == 2){
- pot3 = z;
- }
- else if (pin == 3){
- pot4 = z;
- }
- else if (pin == 4){
- pot5 = z;
- }
- else if (pin == 5){
- pot6 = z;
- }
- else if (pin == 6){
- pot7 = z;
- }
- else if (pin == 7){
- pot8 = z;
- }
- chThdSleepMilliseconds(1);
- }
- }
Add Comment
Please, Sign In to add comment