#ifndef CANCONFIG_H
#define CANCONFIG_H

#define CAN_ONLY_EMULATING
#define CAN_ERROR_WITH_CORRECT_CRC


// Настройки GPIO и таймера
#define CANEMU_TX_GPIO_PORT     GPIOA
#define CANEMU_TX_GPIO_PIN      12
#define CANEMU_TIM              TIM2
#define CANEMU_TIM_US_TICKS     72   // Для 1 мкс при 72 МГц
#define CANEMU_TIM_CLOCK_HZ     72000000UL  // частота таймера
#define CAN_MIN_PERIOD          20
#define LED_WORKING(on_off)  \
    do { \
        if (!on_off) GPIOC->ODR |=  (1U << 13); \
        else        GPIOC->ODR &= ~(1U << 13); \
    } while (0)
// === Макросы управления GPIO ===

#define can_tx_set_1()        (CANEMU_TX_GPIO_PORT->BSRR = (1U << CANEMU_TX_GPIO_PIN))
#define can_tx_set_0()        (CANEMU_TX_GPIO_PORT->BRR  = (1U << CANEMU_TX_GPIO_PIN))

// === Макросы управления таймером ===

#define tim_reset(TIM)        ((TIM)->CNT = 0)
#define tim_get(TIM)          ((uint16_t)(TIM)->CNT)
#define tim_start(TIM)        ((TIM)->CR1 |= TIM_CR1_CEN)
#define tim_stop(TIM)         ((TIM)->CR1 &= ~TIM_CR1_CEN)



#endif // CANEMU_H
