heater-arm/avr: add some descriptions and prettify files

This commit is contained in:
Nico Tonnhofer 2017-03-20 08:07:56 +01:00
parent 60a7542dc9
commit 6e78757385
2 changed files with 18 additions and 7 deletions

View File

@ -28,6 +28,10 @@ typedef struct {
uint8_t invert; ///< Wether the heater pin signal needs to be inverted. uint8_t invert; ///< Wether the heater pin signal needs to be inverted.
} heater_definition_t; } heater_definition_t;
// When pwm >= 2 it's hardware pwm, if the pin has hardware pwm.
// When pwm == 1 it's software pwm.
// pwm == 0 is no pwm at all.
// Use this macro only in DEFINE_HEATER_ACTUAL-macros.
#define PWM_TYPE(pwm, pin) (((pwm) >= HARDWARE_PWM) ? ((pin ## _PWM) ? HARDWARE_PWM : SOFTWARE_PWM) : (pwm)) #define PWM_TYPE(pwm, pin) (((pwm) >= HARDWARE_PWM) ? ((pin ## _PWM) ? HARDWARE_PWM : SOFTWARE_PWM) : (pwm))
#undef DEFINE_HEATER_ACTUAL #undef DEFINE_HEATER_ACTUAL

View File

@ -73,17 +73,24 @@ typedef struct {
uint8_t invert; ///< Wether the heater pin signal needs to be inverted. uint8_t invert; ///< Wether the heater pin signal needs to be inverted.
} heater_definition_t; } heater_definition_t;
// When pwm >= 2 it's hardware pwm, if the pin has hardware pwm.
// When pwm == 1 it's software pwm.
// pwm == 0 is no pwm at all.
// Use this macro only in DEFINE_HEATER_ACTUAL-macros.
#define PWM_TYPE(pwm, pin) (((pwm) >= HARDWARE_PWM) ? ((pin ## _TIMER) ? HARDWARE_PWM : SOFTWARE_PWM) : (pwm)) #define PWM_TYPE(pwm, pin) (((pwm) >= HARDWARE_PWM) ? ((pin ## _TIMER) ? HARDWARE_PWM : SOFTWARE_PWM) : (pwm))
#undef DEFINE_HEATER_ACTUAL #undef DEFINE_HEATER_ACTUAL
#define DEFINE_HEATER_ACTUAL(name, pin, invert, pwm, max_value) \ #define DEFINE_HEATER_ACTUAL(name, pin, invert, pwm, max_value) \
{ \ { \
{ (PWM_TYPE(pwm, pin) == HARDWARE_PWM ? \ { (PWM_TYPE(pwm, pin) == HARDWARE_PWM) ? \
&(pin ## _TIMER->MR[pin ## _MATCH]) : \ &(pin ## _TIMER->MR[pin ## _MATCH]) : \
&(pin ## _PORT->MASKED_ACCESS[MASK(pin ## _PIN)]) }, \ &(pin ## _PORT->MASKED_ACCESS[MASK(pin ## _PIN)]) \
(PWM_TYPE(pwm, pin) != SOFTWARE_PWM) ? ((max_value * 64 + 12) / 25) : (uint16_t)(255UL * 100 / max_value), \ }, \
PWM_TYPE(pwm, pin), \ (PWM_TYPE(pwm, pin) != SOFTWARE_PWM) ? \
invert ? 1 : 0 \ ((max_value * 64 + 12) / 25) : \
(uint16_t)(255UL * 100 / max_value), \
PWM_TYPE(pwm, pin), \
invert ? 1 : 0 \
}, },
static const heater_definition_t heaters[NUM_HEATERS] = { static const heater_definition_t heaters[NUM_HEATERS] = {
#include "config_wrapper.h" #include "config_wrapper.h"