 979af6c165
			
		
	
	
		979af6c165
		
			
		
	
	
	
	
		
			
			* add delay function * todo about delay_isr * remove arduino defines and fix all apps to use core-api/hal-api * delay for local target * remove warnings of task_equal * fix BSP_SD_Init * fix USBD_static * grio read constant pointer to gpio * add TODO about ISR context * const void* arg for pubsub api * mark unused functions * app pointers now pointed to constant apps * fix printf format * fix "unused" warnings in local target * fix const pin read in local target * fix int to pointer warnings in local target * power read mutex error fix * delete old makefile * add -werror Co-authored-by: Aleksandr Kutuzov <aku@plooks.com> Co-authored-by: aanper <mail@s3f.ru>
		
			
				
	
	
		
			24 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "api-hal-delay.h"
 | |
| #include "assert.h"
 | |
| #include "cmsis_os2.h"
 | |
| 
 | |
| void delay_us_init_DWT(void) {
 | |
|     CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
 | |
|     DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
 | |
|     DWT->CYCCNT = 0U;
 | |
| }
 | |
| 
 | |
| void delay_us(float microseconds) {
 | |
|     uint32_t start = DWT->CYCCNT;
 | |
|     uint32_t time_ticks = microseconds * (SystemCoreClock / 1000000.0f);
 | |
|     while((DWT->CYCCNT - start) < time_ticks) {
 | |
|     };
 | |
| }
 | |
| 
 | |
| // cannot be used in ISR
 | |
| // TODO add delay_ISR variant
 | |
| void delay(float milliseconds) {
 | |
|     uint32_t ticks = milliseconds / (1000.0f / osKernelGetTickFreq());
 | |
|     osStatus_t result = osDelay(ticks);
 | |
|     assert(result == osOK);
 | |
| } |