|  |  |  | @ -4,7 +4,20 @@ | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t outStates[]={0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t inStatesRaw[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t inStates[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t oldInstates[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t inStatesBothEdges[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t inStatesRisingEdge[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | volatile uint8_t inStatesFallingEdge[] = {0,0,0,0}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void ioHelperEdgeDetector(void){ | 
			
		
	
		
			
				
					|  |  |  |  |     for (uint8_t i = 0; i < 4; i++){ | 
			
		
	
		
			
				
					|  |  |  |  |         inStatesBothEdges[i] = oldInstates[i] ^ inStates[i]; | 
			
		
	
		
			
				
					|  |  |  |  |         inStatesRisingEdge[i] = inStatesBothEdges[i] & inStates[i]; | 
			
		
	
		
			
				
					|  |  |  |  |         inStatesFallingEdge[i] = inStatesBothEdges[i] & oldInstates[i]; | 
			
		
	
		
			
				
					|  |  |  |  |         oldInstates[i] = inStates[i]; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /* @brief: copies a single bit from one char to another char (or arrays thereof)
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |