Request Identifying the CC2541F256_Chip_Set problem.
Within the interrupt occurs in PORT1[2], the ISR routine P1IFG_2=1, and P1IFG_3=1 Register is set at the same time is a problem occurred.
PORT-1 [0:3] are configured as shown in the figure.
As follows: .
STEP1: the SW0 or SW1 Press -> P1IFG_0 = 1 or P1IFG_1 = 1, Error No (Set = 1).
STEP2 : SW3 Press -> P1IFG_3 = 1, No Error( Set = 1 ).
STEP3 : SW2 Press -> P1IFG_2 = 1 and P1IFG_3 = 1, Error simultaneous SET (Set = 1).
STEP4: STEP2 + STEP3 repeat, occurring irregularly.
The problem as described above was confirmed SmartRF05EB(Rev1.8.1.2) Board 2 SET, and My Target Board 5 SET.
all The same phenomenon occurs.
STACK : BLE-CC254x-1.3.1 COMPILER : IAR 8.11.1 OS : Windows-7.
SmartRF05EB S/N : 0X35BC, 0x35DF. CC2541EM S/N : 000418, 000419.
---------------------------------------------------------- My ISR Routine. ----------------------------------------------------------
HAL_ISR_FUNCTION( halKeyPort1Isr, P1INT_VECTOR )
{
HAL_DISABLE_INTERRUPTS();
uint8 nIFG1 = P1IFG;
uint8 nP1 = P1;
bool bIntFlag = false;
if( nIFG1 & BIT0 )
{
m_KeyIntRepeat |= INT_KEY_CODE_SW1;
bIntFlag = true;
}
if( nIFG1 & BIT1 )
{
m_KeyIntRepeat |= INT_KEY_CODE_SW2;
bIntFlag = true;
}
if( nIFG1 & BIT2 )
{
m_KeyIntRepeat |= INT_KEY_CODE_SW3;
bIntFlag = true;
}
if( nIFG1 & BIT3 )
{
m_KeyIntRepeat |= INT_KEY_CODE_SW4;
bIntFlag = true;
}
if( bIntFlag == true )
{
osal_start_timerEx( Hal_TaskID, INT_KEY_REPEAT_EVENT, INT_KEY_REPEAT_VALUE );
}
P1IFG = 0x00;
P1IF = 0;
HAL_ENABLE_INTERRUPTS();
}
----------------------------------------------------------