PeterD (03.04.2015 11:14, просмотров: 2806)
В 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_"