You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
1 year ago
|
/*
|
||
|
* stm_gen.h
|
||
|
*
|
||
|
* Created on: Oct 3, 2023
|
||
|
* Author: Katya
|
||
|
*/
|
||
|
|
||
|
#ifndef INC_STM_GEN_H_
|
||
|
#define INC_STM_GEN_H_
|
||
|
|
||
|
typedef struct {
|
||
|
// SPI input
|
||
|
uint8_t time_mode;
|
||
|
uint16_t pwm_value;
|
||
|
uint8_t f;
|
||
|
uint8_t invert; // L12 (1/0)
|
||
|
uint8_t in_r1; // IN_R1 (1/0)
|
||
|
// inner
|
||
|
uint8_t coef; // prescaler
|
||
|
uint16_t freq_pwm_new; // period
|
||
|
uint16_t pwm_value_res; // пересчитанное значение PWM (относительно freq_pwm_new)
|
||
|
} Mode;
|
||
|
|
||
|
#define CHANNELS 2
|
||
|
#define F_CPU_TIM1 1000
|
||
|
#define F_CPU 24000000
|
||
|
#define MAX_PWM_FREQ 65535
|
||
|
|
||
|
//#define DWT_CYCCNT *(volatile unsigned long *)0xE0001004
|
||
|
//#define DWT_CONTROL *(volatile unsigned long *)0xE0001000
|
||
|
//#define SCB_DEMCR *(volatile unsigned long *)0xE000EDFC
|
||
|
|
||
|
extern Mode modes[CHANNELS];
|
||
|
|
||
|
//void DWT_Init(void);
|
||
|
void PWMInit(uint8_t prescaler, uint16_t period, uint16_t pwm_value);
|
||
|
void ChannelSwap(Mode *mode_ptr, int channel_new, int *channel_var, int settings_flag, int *settings_var);
|
||
|
void SetInvert(Mode *mode_ptr);
|
||
|
void SetIN_R1(Mode *mode_ptr);
|
||
|
void FillMode(Mode *mode_ptr, uint8_t *recData, int start);
|
||
|
void CommonChannelActions(Mode *mode_ptr, int channel, int *channelPtr, int *iter, int *settings_set);
|
||
|
|
||
|
#endif /* INC_STM_GEN_H_ */
|