 PeterD (03.04.2015 11:14, просмотров: 2969)
 PeterD (03.04.2015 11:14, просмотров: 2969)
В IAR-e путаюсь передать структуру в функцию.  struct  round_buff_{      
        unsigned short int buff[16];
        unsigned char p_wr;
        unsigned char p_rd;
        unsigned char num_write_rd;        
                   } chn_adc0,chn_adc1;
функцию вызываю в подпрограмме прерывания (или в любой другой подпрограмме тут же получаю ошибку) если функцию вызываю в main все проходит. Структуру пытаюсь передать через указатель. Подскажите где рыть. Вот функция.   
//
//
//
//
//
unsigned short int round_buff_wr_rd (round_buff_ *chn_adcX, unsigned short int data, STATE_FIFO state )
          {
              unsigned short int data_read = state;
              
              switch (state) {
          case f_reset:
                (*chn_adcX).p_wr = 0;
                (*chn_adcX).p_rd = 0;
                break;
          case f_write:                
                (*chn_adcX).buff[(*chn_adcX).p_wr]=data;
                (*chn_adcX).p_wr=((*chn_adcX).p_wr+1) & 0x0F;
                break;
          case f_read:
                data_read = (*chn_adcX).buff[(*chn_adcX).p_rd];
                (*chn_adcX).p_rd = ((*chn_adcX).p_rd+1) & 0x0F;                
                break; 
              }; 
          return data_read;
          };
Вызов в функции в прерывании приводит к ошибке 
.....................................................
.....................................................
 case ADC12IV_ADC12IFG0:        
     round_buff_wr_rd(&chn_adc0,ADC12MEM0,f_write);    
    break;    
  case ADC12IV_ADC12IFG1:      
    round_buff_wr_rd(&chn_adc1,ADC12MEM1,f_write);
    break;
  case ADC12IV_ADC12IFG2:
....................................................
.....................................................
Error[Pe415]: no suitable constructor exists to convert from "round_buff_ *" to "round_buff_"