SimpleFOClibrary 2.4.0
Loading...
Searching...
No Matches
drivers/hardware_specific/generic_mcu.cpp
Go to the documentation of this file.
1
2#include "../hardware_api.h"
3
4// if the mcu doen't have defiend analogWrite
5#if defined(ESP_H) && defined(ARDUINO_ARCH_ESP32) && !defined(analogWrite)
6 __attribute__((weak)) void analogWrite(uint8_t pin, int value){ };
7#endif
8
9// function setting the high pwm frequency to the supplied pin
10// - Stepper motor - 1PWM setting
11// - hardware speciffic
12// in generic case dont do anything
13__attribute__((weak)) void* _configure1PWM(long pwm_frequency, const int pinA) {
15 .pins = { pinA },
16 .pwm_frequency = pwm_frequency
17 };
18 return params;
19}
20
21// function setting the high pwm frequency to the supplied pins
22// - Stepper motor - 2PWM setting
23// - hardware speciffic
24// in generic case dont do anything
25__attribute__((weak)) void* _configure2PWM(long pwm_frequency,const int pinA, const int pinB) {
27 .pins = { pinA, pinB },
28 .pwm_frequency = pwm_frequency
29 };
30 return params;
31}
32
33// function setting the high pwm frequency to the supplied pins
34// - BLDC motor - 3PWM setting
35// - hardware speciffic
36// in generic case dont do anything
37__attribute__((weak)) void* _configure3PWM(long pwm_frequency,const int pinA, const int pinB, const int pinC) {
39 .pins = { pinA, pinB, pinC },
40 .pwm_frequency = pwm_frequency
41 };
42 return params;
43}
44
45
46// function setting the high pwm frequency to the supplied pins
47// - Stepper motor - 4PWM setting
48// - hardware speciffic
49// in generic case dont do anything
50__attribute__((weak)) void* _configure4PWM(long pwm_frequency, const int pin1A, const int pin1B, const int pin2A, const int pin2B) {
52 .pins = { pin1A, pin1B, pin2A, pin2B },
53 .pwm_frequency = pwm_frequency
54 };
55 return params;
56}
57
58// Configuring PWM frequency, resolution and alignment
59// - BLDC driver - 6PWM setting
60// - hardware specific
61__attribute__((weak)) void* _configure6PWM(long pwm_frequency, float dead_zone, const int pinA_h, const int pinA_l, const int pinB_h, const int pinB_l, const int pinC_h, const int pinC_l){
62 _UNUSED(pwm_frequency);
70
72}
73
74
75// function setting the pwm duty cycle to the hardware
76// - Stepper motor - 1PWM setting
77// - hardware speciffic
78__attribute__((weak)) void _writeDutyCycle1PWM(float dc_a, void* params){
79 // transform duty cycle from [0,1] to [0,255]
80 analogWrite(((GenericDriverParams*)params)->pins[0], 255.0f*dc_a);
81}
82
83
84// function setting the pwm duty cycle to the hardware
85// - Stepper motor - 2PWM setting
86// - hardware speciffic
87__attribute__((weak)) void _writeDutyCycle2PWM(float dc_a, float dc_b, void* params){
88 // transform duty cycle from [0,1] to [0,255]
89 analogWrite(((GenericDriverParams*)params)->pins[0], 255.0f*dc_a);
91}
92
93// function setting the pwm duty cycle to the hardware
94// - BLDC motor - 3PWM setting
95// - hardware speciffic
96__attribute__((weak)) void _writeDutyCycle3PWM(float dc_a, float dc_b, float dc_c, void* params){
97 // transform duty cycle from [0,1] to [0,255]
98 analogWrite(((GenericDriverParams*)params)->pins[0], 255.0f*dc_a);
99 analogWrite(((GenericDriverParams*)params)->pins[1], 255.0f*dc_b);
101}
102
103// function setting the pwm duty cycle to the hardware
104// - Stepper motor - 4PWM setting
105// - hardware speciffic
106__attribute__((weak)) void _writeDutyCycle4PWM(float dc_1a, float dc_1b, float dc_2a, float dc_2b, void* params){
107 // transform duty cycle from [0,1] to [0,255]
108
109 analogWrite(((GenericDriverParams*)params)->pins[0], 255.0f*dc_1a);
110 analogWrite(((GenericDriverParams*)params)->pins[1], 255.0f*dc_1b);
111 analogWrite(((GenericDriverParams*)params)->pins[2], 255.0f*dc_2a);
113}
114
115
116// Function setting the duty cycle to the pwm pin (ex. analogWrite())
117// - BLDC driver - 6PWM setting
118// - hardware specific
119__attribute__((weak)) void _writeDutyCycle6PWM(float dc_a, float dc_b, float dc_c, PhaseState *phase_state, void* params){
120 _UNUSED(dc_a);
125}
PhaseState
Definition FOCDriver.h:7
void * _configure4PWM(long pwm_frequency, const int pin1A, const int pin1B, const int pin2A, const int pin2B)
void * _configure6PWM(long pwm_frequency, float dead_zone, const int pinA_h, const int pinA_l, const int pinB_h, const int pinB_l, const int pinC_h, const int pinC_l)
void * _configure2PWM(long pwm_frequency, const int pinA, const int pinB)
void _writeDutyCycle2PWM(float dc_a, float dc_b, void *params)
void _writeDutyCycle1PWM(float dc_a, void *params)
void _writeDutyCycle4PWM(float dc_1a, float dc_1b, float dc_2a, float dc_2b, void *params)
void * _configure3PWM(long pwm_frequency, const int pinA, const int pinB, const int pinC)
void _writeDutyCycle6PWM(float dc_a, float dc_b, float dc_c, PhaseState *phase_state, void *params)
void * _configure1PWM(long pwm_frequency, const int pinA)
void _writeDutyCycle3PWM(float dc_a, float dc_b, float dc_c, void *params)
const int const int pinB
float const int const int const int pinB_h
float const int const int const int const int pinB_l
const int const int pin1B
const int const int const int pin2A
float const int const int const int const int const int pinC_h
const int const int const int pinC
float float float dc_2b
float float PhaseState * phase_state
float const int const int const int const int const int const int pinC_l
float const int const int pinA_l
analogWrite(((GenericDriverParams *) params) ->pins[1], 255.0f *dc_b)
__attribute__((weak)) void *_configure1PWM(long pwm_frequency
const int const int const int const int pin2B
#define _UNUSED(v)
Definition foc_utils.h:14