| 
				
			 | 
			
			 | 
			@@ -320,6 +320,19 @@ void MillisTimer::runFromTimer() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// Long ago you could install your own systick interrupt handler by just | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// creating your own systick_isr() function.  No longer.  But if you | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// *really* want to commandeer systick, you can still do so by writing | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// your function into the RAM-based vector table. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//   _VectorsRam[15] = my_systick_function; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// However, for long-term portability, use a MillisTimer object to | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// generate an event every millisecond, and attach your function to | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// its EventResponder.  You can attach as a software interrupt, so your | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// code will run at lower interrupt priority for better compatibility | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// with libraries using mid-to-high priority interrupts. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			extern "C" volatile uint32_t systick_millis_count; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void systick_isr(void) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ |