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(); }
----------------------------------------------------------