 610f4f5d73
			
		
	
	
		610f4f5d73
		
			
		
	
	
	
	
		
			
			* targets/api-hal: rework documentation in doxygen style * core/api-hal: rework documentation in doxygen style * core/furi: rework documentation in doxygen style * drivers: rework documentation in doxygen style Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <stdbool.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /** Interrupt callback prototype */
 | |
| typedef void (*InterruptCallback)(void*, void*);
 | |
| 
 | |
| /** Interupt type */
 | |
| typedef enum {
 | |
|     InterruptTypeComparatorTrigger,
 | |
|     InterruptTypeTimerCapture,
 | |
|     InterruptTypeTimerOutputCompare,
 | |
|     InterruptTypeTimerUpdate,
 | |
|     InterruptTypeExternalInterrupt,
 | |
| } InterruptType;
 | |
| 
 | |
| /** Interrupt callback type */
 | |
| typedef struct {
 | |
|     InterruptCallback callback;
 | |
|     InterruptType type;
 | |
|     void* context;
 | |
|     bool ready;
 | |
| } InterruptCallbackItem;
 | |
| 
 | |
| /**
 | |
|  * Init interrupt
 | |
|  * @return true on succsessful initialization, false otherwise
 | |
|  */
 | |
| bool api_interrupt_init();
 | |
| 
 | |
| /**
 | |
|  * Add interrupt
 | |
|  * @param callback InterruptCallback
 | |
|  * @param type InterruptType
 | |
|  * @param context context for callback
 | |
|  */
 | |
| void api_interrupt_add(InterruptCallback callback, InterruptType type, void* context);
 | |
| 
 | |
| /**
 | |
|  * Remove interrupt
 | |
|  * @param callback InterruptCallback
 | |
|  * @param type InterruptType
 | |
|  */
 | |
| void api_interrupt_remove(InterruptCallback callback, InterruptType type);
 | |
| 
 | |
| /**
 | |
|  * Enable interrupt
 | |
|  * @param callback InterruptCallback
 | |
|  * @param type InterruptType
 | |
|  */
 | |
| void api_interrupt_enable(InterruptCallback callback, InterruptType type);
 | |
| 
 | |
| /**
 | |
|  * Disable interrupt
 | |
|  * @param callback InterruptCallback
 | |
|  * @param type InterruptType
 | |
|  */
 | |
| void api_interrupt_disable(InterruptCallback callback, InterruptType type);
 | |
| 
 | |
| /**
 | |
|  * Call interrupt
 | |
|  * @param type InterruptType
 | |
|  * @param hw pointer to hardware peripheral
 | |
|  */
 | |
| void api_interrupt_call(InterruptType type, void* hw);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |