fix button int mux error
This commit is contained in:
		
							parent
							
								
									9f50648334
								
							
						
					
					
						commit
						034f12a602
					
				
					 1 changed files with 7 additions and 8 deletions
				
			
		|  | @ -1,6 +1,6 @@ | |||
| // TODO fix line 27
 | ||||
| // Note: unlike ch582, ch592 has no RB_PIN_INTX mux, so cannot use PB22,23 as INT pins!
 | ||||
| // LED: PA8 (active low)
 | ||||
| // BUT: PB22 (active low, no pullup)
 | ||||
| // BUT: PB4 (active low, no pullup)
 | ||||
| 
 | ||||
| #include "CH59x_common.h" | ||||
| 
 | ||||
|  | @ -8,9 +8,9 @@ __INTERRUPT | |||
| __HIGH_CODE | ||||
| void GPIOB_IRQHandler() | ||||
| { | ||||
|   if (GPIOB_ReadITFlagBit(GPIO_Pin_8)) { | ||||
|   if (GPIOB_ReadITFlagBit(GPIO_Pin_4)) { | ||||
|     GPIOA_InverseBits(GPIO_Pin_8); | ||||
|     GPIOB_ClearITFlagBit(GPIO_Pin_8); | ||||
|     GPIOB_ClearITFlagBit(GPIO_Pin_4); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | @ -21,10 +21,9 @@ int main() | |||
|   GPIOA_SetBits(GPIO_Pin_8);  // LED
 | ||||
|   GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeOut_PP_5mA); | ||||
|    | ||||
|   GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_PU); // button
 | ||||
|   GPIOB_ITModeCfg(GPIO_Pin_8, GPIO_ITMode_FallEdge);  // PB8 mux'd as PB22 see below
 | ||||
|   GPIOB_ClearITFlagBit(GPIO_Pin_8); | ||||
|   GPIOPinRemap(ENABLE, RB_PIN_INTX); // <================== workaround, as R16_PB_INT reg is 16b wide
 | ||||
|   GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU); // button
 | ||||
|   GPIOB_ITModeCfg(GPIO_Pin_4, GPIO_ITMode_FallEdge); | ||||
|   GPIOB_ClearITFlagBit(GPIO_Pin_4); | ||||
|   PFIC_EnableIRQ(GPIO_B_IRQn); | ||||
|    | ||||
|   while (1); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue