40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
#include "stm32f1xx_hal.h"
|
|
#include <pthread.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
|
|
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin){
|
|
printf("toggling pin\n");
|
|
}
|
|
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin){
|
|
printf("reading pin, returning 0\n");
|
|
return GPIO_PIN_RESET;
|
|
}
|
|
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState){
|
|
printf("writing pin\n");
|
|
}
|
|
|
|
static void* tim_handler(void* arg){
|
|
TIM_HandleTypeDef* htim = arg;
|
|
while(htim->started){
|
|
uint64_t delay_ps = 15625 * htim->presc * htim->period;
|
|
printf("delay : %lu\n", delay_ps);
|
|
usleep(delay_ps / 1000000);
|
|
HAL_TIM_PeriodElapsedCallback(htim);
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim){
|
|
printf("starting timer\n");
|
|
htim->started = 1;
|
|
pthread_t tim_thread;
|
|
pthread_create(&tim_thread, NULL, tim_handler, htim);
|
|
return HAL_STATUS_OK;
|
|
}
|
|
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim){
|
|
printf("stopping timer\n");
|
|
htim->started = 0;
|
|
return HAL_STATUS_OK;
|
|
}
|