Advertisement
Guest User

MCP3208 scipt

a guest
Aug 14th, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. uint8_t *txbuf;
  2. uint8_t *rxbuf;
  3.  
  4. int pin = 0;
  5.  
  6. void setup(void){
  7.     static uint8_t _txbuf[8] __attribute__ ((section (".sram2")));
  8.     static uint8_t _rxbuf[8] __attribute__ ((section (".sram2")));
  9.     txbuf = _txbuf;
  10.     rxbuf = _rxbuf;
  11.  
  12.     palSetPadMode(GPIOB,9,PAL_MODE_OUTPUT_PUSHPULL);
  13.     palWritePad(GPIOB,9,1);
  14. }
  15.  
  16. void loop(void){
  17.  
  18.     pin++;
  19.  
  20.     if (pin > 7){
  21.         pin = 0;
  22.     }
  23.     else if (pin == 0){
  24.         txbuf[0] = 0b01100000;  // = 0b01100000 = ADC CH0
  25.         txbuf[1] = 0b00000000;  // = 0b00000000
  26.         txbuf[2] = 0b00000000;  // = 0b00000000
  27.     }
  28.     else if (pin == 1){
  29.         txbuf[0] = 0b01100000;  // = 0b01100000 = ADC CH1
  30.         txbuf[1] = 0b00000010;  // = 0b00000000
  31.         txbuf[2] = 0b00000000;  // = 0b00000000
  32.     }
  33.     else if (pin == 2){
  34.         txbuf[0] = 0b01100000;  // = 0b01100000 = ADC CH2
  35.         txbuf[1] = 0b00000001;  // = 0b00000000
  36.         txbuf[2] = 0b00000000;  // = 0b00000000
  37.     }
  38.     else if (pin == 3){
  39.         txbuf[0] = 0b01100000;  // = 0b01100000 = ADC CH3
  40.         txbuf[1] = 0b00000011;  // = 0b00000000
  41.         txbuf[2] = 0b00000000;  // = 0b00000000
  42.     }
  43.     else if (pin == 4){
  44.         txbuf[0] = 0b11100000;  // = 0b01100000 = ADC CH4
  45.         txbuf[1] = 0b00000000;  // = 0b00000000
  46.         txbuf[2] = 0b00000000;  // = 0b00000000
  47.     }
  48.     else if (pin == 5){
  49.         txbuf[0] = 0b11100000;  // = 0b01100000 = ADC CH5
  50.         txbuf[1] = 0b00000010;  // = 0b00000000
  51.         txbuf[2] = 0b00000000;  // = 0b00000000
  52.     }
  53.     else if (pin == 6){
  54.         txbuf[0] = 0b11100000;  // = 0b01100000 = ADC CH6
  55.         txbuf[1] = 0b00000001;  // = 0b00000000
  56.         txbuf[2] = 0b00000000;  // = 0b00000000
  57.     }
  58.     else if (pin == 7){
  59.         txbuf[0] = 0b11100000;  // = 0b01100000 = ADC CH7
  60.         txbuf[1] = 0b00000011;  // = 0b00000000
  61.         txbuf[2] = 0b00000000;  // = 0b00000000
  62.     }  
  63.        
  64.     palWritePad(GPIOB,9,0);
  65.     spiSelect(&SPID1);      // START SPI
  66.     spiSend(&SPID1,3,txbuf);
  67.     spiReceive(&SPID1,3,rxbuf);
  68.     spiUnselect(&SPID1);
  69.     palWritePad(GPIOB,9,1);
  70.    
  71.     int z = (rxbuf[1] << 8| rxbuf[0]) << 16;
  72.  
  73.     if (pin == 0){
  74.         PExParameterChange(&parent->PExch[PARAM_INDEX_y0_value],z,0xFFFD);
  75.     }
  76.     else if (pin == 1){
  77.         PExParameterChange(&parent->PExch[PARAM_INDEX_y1_value],z,0xFFFD);
  78.     }
  79.     else if (pin == 2){
  80.         PExParameterChange(&parent->PExch[PARAM_INDEX_y2_value],z,0xFFFD);
  81.     }
  82.     else if (pin == 3){
  83.         PExParameterChange(&parent->PExch[PARAM_INDEX_y3_value],z,0xFFFD);
  84.     }
  85.     else if (pin == 4){
  86.        
  87.     }
  88.     else if (pin == 5){
  89.        
  90.     }
  91.     else if (pin == 6){
  92.        
  93.     }
  94.     else if (pin == 7){
  95.        
  96.     }  
  97.     chThdSleepMilliseconds(1);
  98.    
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement