123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- /*""FILE COMMENT""*******************************************************
- * System Name : I²C API for RX62Nxx (FP suffix)
- * File Name : r_pdl_iic_RX62NxFP.h
- * Version : 1.02
- * Contents : I²C API header
- * Customer :
- * Model :
- * Order :
- * CPU : RX
- * Compiler : RXC
- * OS : Nothing
- * Programmer :
- * Note :
- ************************************************************************
- * Copyright, 2011. Renesas Electronics Corporation
- * and Renesas Solutions Corporation
- ************************************************************************
- * History : 2011.04.08
- * : Ver 1.02
- * : CS-5 release.
- *""FILE COMMENT END""**************************************************/
- #ifndef R_PDL_IIC_RX62NxFP_H
- #define R_PDL_IIC_RX62NxFP_H
- #define IIC_CHANNELS 1
- /* Globals */
- extern volatile uint8_t rpdl_IIC_stop[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_current_state[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_next_state[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_slave_address_lower[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_slave_address_upper[IIC_CHANNELS];
- extern const volatile uint8_t * rpdl_IIC_tx_data_pointer[IIC_CHANNELS];
- extern const volatile uint8_t * rpdl_IIC_tx_data_start[IIC_CHANNELS];
- extern volatile uint8_t * rpdl_IIC_rx_data_pointer[IIC_CHANNELS];
- extern volatile uint8_t * rpdl_IIC_rx_data_start[IIC_CHANNELS];
- extern volatile uint16_t rpdl_IIC_rx_counter[IIC_CHANNELS];
- extern volatile uint16_t rpdl_IIC_tx_counter[IIC_CHANNELS];
- extern volatile uint16_t rpdl_IIC_rx_threshold[IIC_CHANNELS];
- extern volatile uint16_t rpdl_IIC_tx_threshold[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_detected_address[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_rx_transfer_method[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_rx_dmac_channel[IIC_CHANNELS];
- extern volatile uint8_t rpdl_IIC_tx_dmac_channel[IIC_CHANNELS];
- /* IIC state machine states */
- typedef enum {
- IIC_SEND_START,
- IIC_MASTER_SEND_SLAVE_ADDRESS_7,
- IIC_MASTER_SEND_SLAVE_ADDRESS_10a,
- IIC_MASTER_SEND_SLAVE_ADDRESS_10b,
- IIC_MASTER_SEND_SLAVE_ADDRESS_10c,
- IIC_MASTER_SEND_SLAVE_ADDRESS_10d,
- IIC_MASTER_SEND_DATA,
- IIC_MASTER_WAIT_FOR_TX_COMPLETE,
- IIC_MASTER_WAIT_FOR_STOP,
- IIC_EXIT_LOOP,
- IIC_MASTER_START_READ,
- IIC_MASTER_READ_DATA,
- IIC_SEND_STOP,
- IIC_SLAVE_MONITOR,
- IIC_SLAVE_SEND_DATA,
- IIC_SLAVE_READ_SLAVE_ADDRESS,
- IIC_SLAVE_READ_DATA
- } iic_states;
- /* Transfer options */
- #define IIC_TRANSFER_CPU 0
- #define IIC_TRANSFER_DMAC 2
- #define IIC_TRANSFER_DTC 1
- /* Callback function prototype */
- extern VoidCallBackFunc rpdl_IIC_callback_func[IIC_CHANNELS];
- /* Library prototypes */
- bool R_IIC_CreateAll(
- const uint8_t,
- const uint32_t,
- const uint32_t,
- const uint16_t,
- const uint16_t,
- const uint16_t,
- const uint32_t,
- const uint32_t
- );
- bool R_IIC_DestroyAll(
- const uint8_t
- );
- bool R_IIC_MasterSendAll(
- const uint8_t,
- const uint16_t,
- const uint16_t,
- const volatile uint8_t * const,
- const uint16_t,
- VoidCallBackFunc const,
- const uint8_t
- );
- bool R_IIC_MasterReceiveAll(
- const uint8_t,
- const uint16_t,
- const uint16_t,
- volatile uint8_t * const,
- const uint16_t,
- VoidCallBackFunc const,
- const uint8_t
- );
- bool R_IIC_MasterReceiveLastAll(
- const uint8_t,
- volatile uint8_t * const
- );
- bool R_IIC_SlaveMonitorAll(
- const uint8_t,
- const uint16_t,
- volatile uint8_t * const,
- const uint16_t,
- VoidCallBackFunc const,
- const uint8_t
- );
- bool R_IIC_SlaveSendAll(
- const uint8_t,
- const volatile uint8_t * const,
- const uint16_t
- );
- bool R_IIC_ControlAll(
- const uint8_t,
- const uint8_t
- );
- bool R_IIC_GetStatusAll(
- const uint8_t,
- volatile uint32_t * const,
- volatile uint16_t * const,
- volatile uint16_t * const
- );
- bool ReturnFalse(void);
- /* Macro definitions */
- #define R_IIC_Create(a, b, c, d, e, f, g, h) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_CreateAll( (a), (b), (c), (d), (e), (f), (g), (h) ) : \
- ReturnFalse() \
- )
- #define R_IIC_Destroy(a) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_DestroyAll( (a) ) : \
- ReturnFalse() \
- )
- #define R_IIC_MasterSend(a, b, c, d, e, f, g) \
- ( \
- ( ( (a) < IIC_CHANNELS ) && ((g) <= IPL_MAX) ) ? \
- R_IIC_MasterSendAll( (a), (b), (c), (d), (e), (f), (g) ) : \
- ReturnFalse() \
- )
- #define R_IIC_MasterReceive(a, b, c, d, e, f, g) \
- ( \
- ( ( (a) < IIC_CHANNELS ) && ((g) <= IPL_MAX) ) ? \
- R_IIC_MasterReceiveAll( (a), (b), (c), (d), (e), (f), (g) ) : \
- ReturnFalse() \
- )
- #define R_IIC_MasterReceiveLast(a, b) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_MasterReceiveLastAll( (a), (b) ) : \
- ReturnFalse() \
- )
- #define R_IIC_SlaveMonitor(a, b, c, d, e, f) \
- ( \
- ( ( (a) < IIC_CHANNELS ) && ((f) <= IPL_MAX) ) ? \
- R_IIC_SlaveMonitorAll( (a), (b), (c), (d), (e), (f) ) : \
- ReturnFalse() \
- )
- #define R_IIC_SlaveSend(a, b, c) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_SlaveSendAll( (a), (b), (c) ) : \
- ReturnFalse() \
- )
- #define R_IIC_Control(a, b) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_ControlAll( (a), (b) ) : \
- ReturnFalse() \
- )
- #define R_IIC_GetStatus(a, b, c, d) \
- ( \
- ( (a) < IIC_CHANNELS ) ? \
- R_IIC_GetStatusAll( (a), (b), (c), (d) ) : \
- ReturnFalse() \
- )
- #endif
- /* End of file */
|