Prompt please!
I use MSP430F5438 and IAR for MSP430 5.10.1.
Here a part of my code:
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Rx
//Определение команды
if ((deviceState) == CASE_CMD_STATE)
{
RX_buf = UCA0RXBUF;
if (j == 3)
{
pnum = RX_buf;
}
if (j == 7)
{
psi = RX_buf;
if (psi == 0x02)
{
j = 0;
deviceState = START_STOP_STATE;
break;
}
else
if (psi == 0x00)
{
j = 0;
deviceState = CONFIG_CODEC_STATE;
break;
}
if (psi == 0x01)
{
if (pnum == 0x00)
{
j = 0;
deviceState = CONFIG_TLV_STATE;
break;
}
if (pnum == 0x01)
{
j = 0;
deviceState = CONFIG_XE_STATE;
break;
}
}
if (psi == 0x04)
{
j = 0;
deviceState = RST_CMD_STATE;
break;
}
}
j++;
}
................................................
I don't write a part of the code.
.................................................
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}
When I make project IAR write:
Error[Ta022]: Code too large for switch(__even_in_range(X,N)), please use switch(X) instead.
Prompt how to solve a problem? I should use a lot of code in this interrup!