/******************************************************************************* * Copyright © 2019 TRINAMIC Motion Control GmbH & Co. KG * (now owned by Analog Devices Inc.), * * Copyright © 2023 Analog Devices Inc. All Rights Reserved. This software is * proprietary & confidential to Analog Devices, Inc. and its licensors. *******************************************************************************/ #ifndef TIMER_H_ #define TIMER_H_ #include "derivative.h" #if defined(Landungsbruecke) || defined(LandungsbrueckeSmall) #define TIMER_MAX 8000 #elif defined(LandungsbrueckeV3) #define TIMER_MAX 65535 #endif typedef enum { TIMER_CHANNEL_1, TIMER_CHANNEL_2, TIMER_CHANNEL_3, TIMER_CHANNEL_4, TIMER_CHANNEL_5 } timer_channel; typedef struct { bool initialized; void (*init) (void); void (*deInit) (void); void (*setDuty) (timer_channel channel, float duty); float (*getDuty) (timer_channel channel); void (*setPeriod) (timer_channel channel, uint16_t period); uint16_t (*getPeriod) (timer_channel channel); void (*setPeriodMin) (timer_channel channel, uint16_t period_min); void (*setFrequency) (timer_channel channel, float freq); void (*setFrequencyMin) (timer_channel channel, float freq_min); void (*overflow_callback) (timer_channel channel); } TimerTypeDef; extern TimerTypeDef Timer; #endif /* TIMER_H_ */