#define M_PI ((float)3.14159265358979323846f) #define NB_LEDS_PER_STRIP 40 #define NB_LINES 1 #define NB_COLUMNS NB_LEDS_PER_STRIP #define NB_PIXELS (NB_LINES*NB_COLUMNS) #define RAW_SIZE (NB_PIXELS*3) #define ONE_LINE_RAW_SIZE (NB_COLUMNS*3) extern uint32_t gSecondCounter; float getTime(void); void setOffsetX(float X); float updateOffsetX(float time); void setSpeedRPS(float RPS, float time); void waitBlocking(uint16_t x_us); void setPC13asInput(void); void setPC13asOutput(void); uint8_t blueButtonIsDepressed(void); void myWait1ms(int dtms); void crash(uint8_t crash_code); // Crash Codes #define CC_CODE_SINCOS 0x01 #define CC_UNKNOWN_HAL_STATUS_CODE 0x02 #define CC_TO_MANY_COMMANDS 0x03 #define CC_SW_ERROR_CMD_MNGR 0x04 #define CC_UNMANAGED_WF_SP_STATE 0x05 #define CC_SW_ERROR_ROLLOVER 0x06 #define CC_MUST_INCREASE_PARSER_BUFFER_SIZE 0x07 #define CC_DMA_TIM2_CH1_FAILED 0x08 //#define CC_DMA_TIM8_CH3_FAILED 0x09 #define CC_MEMMANAGE_FAULT 0x0A #define CC_BUS_FAULT 0x0B #define CC_USAGE_FAULT 0x0C #define CC_WIFI_STARTUP_FAILED 0x0D #define CC_SERIAL_OVERFLOW_TX_WIFI 0x0E #define CC_SERIAL_OVERFLOW_TX_PC 0x0F #define CC_MAIN_POWER_UP_FAILED 0x10 #define CC_DAC1_CONV1_FAILED 0x11 #define CC_DAC1_CONV2_FAILED 0x12 #define CC_HARD_FAULT 0xFF #define RunLedOn() HAL_GPIO_WritePin(LD3_GPIO_Port,LD3_Pin,GPIO_PIN_SET) #define RunLedOff() HAL_GPIO_WritePin(LD3_GPIO_Port,LD3_Pin,GPIO_PIN_RESET) #define RunLedToggle() HAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin) typedef uint8_t bool; #define true 1 #define false 0 // TIM3 pour la capture // TIM6 pour la génération // clocks @ 64Mhz // prescaler (3+1=4) => 16 Mhz ==> rollover in 4ms > 2ms OK. // Starting from a set of 8 pulse width from 1ms to 2ms with X bits precision. // Generate 8 pulses on 8 GPIOs #define NB_SERVOS 8 #define SEGMENT_LENGTH 90 #define SPINE_SIZE (SEGMENT_LENGTH*(NB_SERVOS-1)) #define TIMER_FREQUENCY (1.0e6f) #define T1_0 ((uint16_t) (1.0e-3f*TIMER_FREQUENCY)) #define T1_5 ((uint16_t) (1.5e-3f*TIMER_FREQUENCY)) #define T2_0 ((uint16_t) (2.0e-3f*TIMER_FREQUENCY)) #define T3_0 ((uint16_t) (3.0e-3f*TIMER_FREQUENCY)) void clig(void); void cligFast(void); uint16_t clamp(uint16_t x, uint16_t min, uint16_t max); float linear(float x, int x1, int x2, int y1, int y2);