/* * Irqs.h * * Created on: 30 May 2020 * Author: Ralim */ #ifndef BSP_PINE64_IRQ_H_ #define BSP_PINE64_IRQ_H_ #include "BSP.h" #include "I2C_Wrapper.hpp" #include "Setup.h" #include "gd32vf103.h" #include "main.hpp" #ifdef __cplusplus extern "C" { #endif void ADC0_1_IRQHandler(void); void TIMER1_IRQHandler(void); void EXTI5_9_IRQHandler(void); /* handle I2C0 event interrupt request */ void I2C0_EV_IRQHandler(void); /* handle I2C0 error interrupt request */ void I2C0_ER_IRQHandler(void); typedef enum { I2C_SEND_ADDRESS_FIRST = 0, // Sending slave address I2C_CLEAR_ADDRESS_FLAG_FIRST, // Clear address send I2C_TRANSMIT_WRITE_READ_ADD, // Transmit the memory address to read/write from I2C_SEND_ADDRESS_SECOND, // Send address again for read I2C_CLEAR_ADDRESS_FLAG_SECOND, // Clear address again I2C_TRANSMIT_DATA, // Transmit recieve data I2C_STOP, // Send stop I2C_ABORTED, // I2C_DONE, // I2C transfer is complete I2C_START, I2C_END, I2C_OK, I2C_SEND_ADDRESS, I2C_CLEAR_ADDRESS_FLAG, } i2c_process_enum; extern volatile uint8_t i2c_slave_address; extern volatile uint8_t i2c_read_process; extern volatile uint8_t i2c_write_process; extern volatile uint8_t i2c_error_code; extern volatile uint8_t *i2c_write; extern volatile uint8_t *i2c_read; extern volatile uint16_t i2c_nbytes; extern volatile uint16_t i2c_write_dress; extern volatile uint16_t i2c_read_dress; extern volatile uint8_t i2c_process_flag; #ifdef __cplusplus } #endif #endif /* BSP_PINE64_IRQ_H_ */