⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioctrl.h

📁 在AVR 平台下的控制代码,通过CAN控制
💻 H
字号:
#ifndef __IOCTRL_H
#define __IOCTRL_H
#include <avr/io.h>
#include <avr/pgmspace.h>

#define SETBIT(REG,BIT)                     (REG |= (1<<BIT))
#define CLRBIT(REG,BIT)                     (REG &= (~(1<<BIT)))
#define READBIT(REG,BIT)                    ((REG>>BIT) & 1)

#define SET_IN_MODE(REG,BIT)                SETBIT(REG,BIT)
#define SET_OUT_MODE(REG,BIT)               CLRBIT(REG,BIT)

/*     I2C Port define.use IO mode                                  */
#define HI2C_SCL_Bit					    PC0
#define HI2C_SCL_Dir_REG			        DDRC
#define HI2C_SCL_IN_REG				        PINC
#define HI2C_SCL_OUT_REG			        PORTC

#define HI2C_SDA_Bit                        PC1
#define HI2C_SDA_Dir_REG                    DDRC
#define HI2C_SDA_IN_REG                     PINC
#define HI2C_SDA_OUT_REG                    PORTC

/* LCD port define */
#define LCD_CS1_Bit                         PB0
#define LCD_CS1_Dir_REG                     DDRB
#define LCD_CS1_IN_REG                      PINB
#define LCD_CS1_OUT_REG                     PORTB

#define LCD_CS2_Bit                         PB1
#define LCD_CS2_Dir_REG                     DDRB
#define LCD_CS2_IN_REG                      PINB
#define LCD_CS2_OUT_REG                     PORTB

#define LCD_RS_Bit                          PC7
#define LCD_RS_Dir_REG                      DDRC
#define LCD_RS_IN_REG                       PINC
#define LCD_RS_OUT_REG                      PORTC

#define LCD_RST_Bit                         PC6
#define LCD_RST_Dir_REG                     DDRC
#define LCD_RST_IN_REG                      PINC
#define LCD_RST_OUT_REG                     PORTC

#define LCD_DB7_Bit                         PB7
#define LCD_DB7_Dir_REG                     DDRB
#define LCD_DB7_IN_REG                      PINB
#define LCD_DB7_OUT_REG                     PORTB

#define LCD_DB6_Bit                         PB6
#define LCD_DB6_Dir_REG                     DDRB
#define LCD_DB6_IN_REG                      PINB
#define LCD_DB6_OUT_REG                     PORTB

#define LCD_DB5_Bit                         PB5
#define LCD_DB5_Dir_REG                     DDRB
#define LCD_DB5_IN_REG                      PINB
#define LCD_DB5_OUT_REG                     PORTB

#define LCD_DB4_Bit                         PB4
#define LCD_DB4_Dir_REG                     DDRB
#define LCD_DB4_IN_REG                      PINB
#define LCD_DB4_OUT_REG                     PORTB

#define LCD_DB3_Bit                         PA7
#define LCD_DB3_Dir_REG                     DDRA
#define LCD_DB3_IN_REG                      PINA
#define LCD_DB3_OUT_REG                     PORTA

#define LCD_DB2_Bit                         PA6
#define LCD_DB2_Dir_REG                     DDRA
#define LCD_DB2_IN_REG                      PINA
#define LCD_DB2_OUT_REG                     PORTA

#define LCD_DB1_Bit                         PA5
#define LCD_DB1_Dir_REG                     DDRA
#define LCD_DB1_IN_REG                      PINA
#define LCD_DB1_OUT_REG                     PORTA

#define LCD_DB0_Bit                         PA4
#define LCD_DB0_Dir_REG                     DDRA
#define LCD_DB0_IN_REG                      PINA
#define LCD_DB0_OUT_REG                     PORTA

#define LCD_E_Bit                           PA3
#define LCD_E_Dir_REG                       DDRA
#define LCD_E_IN_REG                        PINA
#define LCD_E_OUT_REG                       PORTA

#define LCD_RW_Bit                          PA2
#define LCD_RW_Dir_REG                      DDRA
#define LCD_RW_IN_REG                       PINA
#define LCD_RW_OUT_REG                      PORTA

/* ROOM_T 温度传感器 */
#define ROOM_T_Bit                          PA1
#define ROOM_T_Dir_REG                      DDRA
#define ROOM_T_IN_REG                       PINA
#define ROOM_T_OUT_REG                      PORTA
/* key board define */
#define KEYBOARD_Bit                        PA0
#define KEYBOARD_Dir_REG                    DDRA
#define KEYBOARD_IN_REG                     PINA
#define KEYBOARD_OUT_REG                    PORTA

/* TC35 define */
#define TC_IGT_Bit                          PD7
#define TC_IGT_Dir_REG                      DDRD
#define TC_IGT_IN_REG                       PIND
#define TC_IGT_OUT_REG                      PORTD

#define TC_CTS_Bit                          PD6
#define TC_CTS_Dir_REG                      DDRD
#define TC_CTS_IN_REG                       PIND
#define TC_CTS_OUT_REG                      PORTD

#define TC_RTS_Bit                          PD5
#define TC_RTS_Dir_REG                      DDRD
#define TC_RTS_IN_REG                       PIND
#define TC_RTS_OUT_REG                      PORTD

#define TC_RING_Bit                         PD2
#define TC_RING_Dir_REG                     DDRD
#define TC_RING_IN_REG                      PIND
#define TC_RING_OUT_REG                     PORTD

#define TC_TXD_Bit                          PD1
#define TC_TXD_Dir_REG                      DDRD
#define TC_TXD_IN_REG                       PIND
#define TC_TXD_OUT_REG                      PORTD

#define TC_RXD_Bit                          PD0
#define TC_RXD_Dir_REG                      DDRD
#define TC_RXD_IN_REG                       PIND
#define TC_RXD_OUT_REG                      PORTD

/* MUL-IN MUL-OUT define */
#define MULTY_OUT_Bit                       PD3
#define MULTY_OUT_Dir_REG                   DDRD
#define MULTY_OUT_IN_REG                    PIND
#define MULTY_OUT_OUT_REG                   PORTD

#define MULTY_IN_Bit                        PD2
#define MULTY_IN_Dir_REG                    DDRD
#define MULTY_IN_IN_REG                     PIND
#define MULTY_IN_OUT_REG                    PORTD

/* UART define */
#define PIN_TXD_Bit                         PB2
#define PIN_TXD_Dir_REG                     DDRB
#define PIN_TXD_IN_REG                      PINB
#define PIN_TXD_OUT_REG                     PORTB
 
#define PIN_RXD_Bit                         PB1
#define PIN_RXD_Dir_REG                     DDRB
#define PIN_RXD_IN_REG                      PINB
#define PIN_RXD_OUT_REG                     PORTB



                                  
    #define HI2C_SCL_INMODE                 CLRBIT(HI2C_SCL_Dir_REG,HI2C_SCL_Bit)             
    #define HI2C_SCL_OUTMODE                SETBIT(HI2C_SCL_Dir_REG,HI2C_SCL_Bit)
    #define HI2C_SDA_INMODE                 CLRBIT(HI2C_SDA_Dir_REG,HI2C_SDA_Bit)
    #define HI2C_SDA_OUTMODE                SETBIT(HI2C_SDA_Dir_REG,HI2C_SDA_Bit)
    #define HI2C_SDA_ISTRUE                 (READBIT(HI2C_SDA_IN_REG,HI2C_SDA_Bit) != 0)
    #define HI2C_SDA_ISFALSE                (READBIT(HI2C_SDA_IN_REG,HI2C_SDA_Bit) == 0)
    #define HI2C_SCL_ISTRUE                 (READBIT(HI2C_SCL_IN_REG,HI2C_SCL_Bit) != 0)
    #define HI2C_SCL_ISFALSE                (READBIT(HI2C_SCL_IN_REG,HI2C_SCL_Bit) == 0)
    
    #define HI2C_ALL_INMODE                 HI2C_SCL_INMODE; HI2C_SCL_INMODE
    #define HI2C_ALL_OUTMODE                HI2C_SCL_OUTMODE; HI2C_SDA_OUTMODE
                                        
    #define HI2C_SCL_SET                    CLRBIT(HI2C_SCL_OUT_REG,HI2C_SCL_Bit)
    #define HI2C_SCL_CLR                    SETBIT(HI2C_SCL_OUT_REG,HI2C_SCL_Bit)
    #define HI2C_SDA_SET                    CLRBIT(HI2C_SDA_OUT_REG,HI2C_SDA_Bit)
    #define HI2C_SDA_CLR                    SETBIT(HI2C_SDA_OUT_REG,HI2C_SDA_Bit)

/* LCD port define */
    #define LCD_CS1_INMODE                 CLRBIT(LCD_CS1_Dir_REG,LCD_CS1_Bit)             
    #define LCD_CS1_OUTMODE                SETBIT(LCD_CS1_Dir_REG,LCD_CS1_Bit)
    #define LCD_CS1_SET                    CLRBIT(LCD_CS1_OUT_REG,LCD_CS1_Bit)
    #define LCD_CS1_CLR                    SETBIT(LCD_CS1_OUT_REG,LCD_CS1_Bit)
    
    #define LCD_CS2_INMODE                 CLRBIT(LCD_CS2_Dir_REG,LCD_CS2_Bit)             
    #define LCD_CS2_OUTMODE                SETBIT(LCD_CS2_Dir_REG,LCD_CS2_Bit)
    #define LCD_CS2_SET                    CLRBIT(LCD_CS2_OUT_REG,LCD_CS2_Bit)
    #define LCD_CS2_CLR                    SETBIT(LCD_CS2_OUT_REG,LCD_CS2_Bit)
    
    #define LCD_RS_INMODE                 CLRBIT(LCD_RS_Dir_REG,LCD_RS_Bit)             
    #define LCD_RS_OUTMODE                SETBIT(LCD_RS_Dir_REG,LCD_RS_Bit)
    #define LCD_RS_SET                    CLRBIT(LCD_RS_OUT_REG,LCD_RS_Bit)
    #define LCD_RS_CLR                    SETBIT(LCD_RS_OUT_REG,LCD_RS_Bit)

    #define LCD_RST_INMODE                 CLRBIT(LCD_RST_Dir_REG,LCD_RST_Bit)             
    #define LCD_RST_OUTMODE                SETBIT(LCD_RST_Dir_REG,LCD_RST_Bit)
    #define LCD_RST_SET                    CLRBIT(LCD_RST_OUT_REG,LCD_RST_Bit)
    #define LCD_RST_CLR                    SETBIT(LCD_RST_OUT_REG,LCD_RST_Bit)

    #define LCD_E_INMODE                 CLRBIT(LCD_E_Dir_REG,LCD_E_Bit)             
    #define LCD_E_OUTMODE                SETBIT(LCD_E_Dir_REG,LCD_E_Bit)
    #define LCD_E_SET                    CLRBIT(LCD_E_OUT_REG,LCD_E_Bit)
    #define LCD_E_CLR                    SETBIT(LCD_E_OUT_REG,LCD_E_Bit)

    #define LCD_RW_INMODE                 CLRBIT(LCD_RW_Dir_REG,LCD_RW_Bit)             
    #define LCD_RW_OUTMODE                SETBIT(LCD_RW_Dir_REG,LCD_RW_Bit)
    #define LCD_RW_SET                    CLRBIT(LCD_RW_OUT_REG,LCD_RW_Bit)
    #define LCD_RW_CLR                    SETBIT(LCD_RW_OUT_REG,LCD_RW_Bit)

    #define LCD_DB7_INMODE                 CLRBIT(LCD_DB7_Dir_REG,LCD_DB7_Bit)             
    #define LCD_DB7_OUTMODE                SETBIT(LCD_DB7_Dir_REG,LCD_DB7_Bit)
    #define LCD_DB7_SET                    CLRBIT(LCD_DB7_OUT_REG,LCD_DB7_Bit)
    #define LCD_DB7_CLR                    SETBIT(LCD_DB7_OUT_REG,LCD_DB7_Bit)
    
    #define LCD_DB6_INMODE                 CLRBIT(LCD_DB6_Dir_REG,LCD_DB6_Bit)             
    #define LCD_DB6_OUTMODE                SETBIT(LCD_DB6_Dir_REG,LCD_DB6_Bit)
    #define LCD_DB6_SET                    CLRBIT(LCD_DB6_OUT_REG,LCD_DB6_Bit)
    #define LCD_DB6_CLR                    SETBIT(LCD_DB6_OUT_REG,LCD_DB6_Bit)

    #define LCD_DB5_INMODE                 CLRBIT(LCD_DB5_Dir_REG,LCD_DB5_Bit)             
    #define LCD_DB5_OUTMODE                SETBIT(LCD_DB5_Dir_REG,LCD_DB5_Bit)
    #define LCD_DB5_SET                    CLRBIT(LCD_DB5_OUT_REG,LCD_DB5_Bit)
    #define LCD_DB5_CLR                    SETBIT(LCD_DB5_OUT_REG,LCD_DB5_Bit)

    #define LCD_DB4_INMODE                 CLRBIT(LCD_DB4_Dir_REG,LCD_DB4_Bit)             
    #define LCD_DB4_OUTMODE                SETBIT(LCD_DB4_Dir_REG,LCD_DB4_Bit)
    #define LCD_DB4_SET                    CLRBIT(LCD_DB4_OUT_REG,LCD_DB4_Bit)
    #define LCD_DB4_CLR                    SETBIT(LCD_DB4_OUT_REG,LCD_DB4_Bit)

    #define LCD_DB3_INMODE                 CLRBIT(LCD_DB3_Dir_REG,LCD_DB3_Bit)             
    #define LCD_DB3_OUTMODE                SETBIT(LCD_DB3_Dir_REG,LCD_DB3_Bit)
    #define LCD_DB3_SET                    CLRBIT(LCD_DB3_OUT_REG,LCD_DB3_Bit)
    #define LCD_DB3_CLR                    SETBIT(LCD_DB3_OUT_REG,LCD_DB3_Bit)

    #define LCD_DB2_INMODE                 CLRBIT(LCD_DB2_Dir_REG,LCD_DB2_Bit)             
    #define LCD_DB2_OUTMODE                SETBIT(LCD_DB2_Dir_REG,LCD_DB2_Bit)
    #define LCD_DB2_SET                    CLRBIT(LCD_DB2_OUT_REG,LCD_DB2_Bit)
    #define LCD_DB2_CLR                    SETBIT(LCD_DB2_OUT_REG,LCD_DB2_Bit)

    #define LCD_DB1_INMODE                 CLRBIT(LCD_DB1_Dir_REG,LCD_DB1_Bit)             
    #define LCD_DB1_OUTMODE                SETBIT(LCD_DB1_Dir_REG,LCD_DB1_Bit)
    #define LCD_DB1_SET                    CLRBIT(LCD_DB1_OUT_REG,LCD_DB1_Bit)
    #define LCD_DB1_CLR                    SETBIT(LCD_DB1_OUT_REG,LCD_DB1_Bit)

    #define LCD_DB0_INMODE                 CLRBIT(LCD_DB0_Dir_REG,LCD_DB0_Bit)             
    #define LCD_DB0_OUTMODE                SETBIT(LCD_DB0_Dir_REG,LCD_DB0_Bit)
    #define LCD_DB0_SET                    CLRBIT(LCD_DB0_OUT_REG,LCD_DB0_Bit)
    #define LCD_DB0_CLR                    SETBIT(LCD_DB0_OUT_REG,LCD_DB0_Bit)
 
/* ROOM_T 温度传感器 */
    #define ROOM_T_INMODE                 CLRBIT(ROOM_T_Dir_REG,ROOM_T_Bit)             
    #define ROOM_T_OUTMODE                SETBIT(ROOM_T_Dir_REG,ROOM_T_Bit)
 /* key board define */
    #define KEYBOARD_INMODE                 CLRBIT(KEYBOARD_Dir_REG,KEYBOARD_Bit)             
    #define KEYBOARD_OUTMODE                SETBIT(KEYBOARD_Dir_REG,KEYBOARD_Bit)

 /* TC35 define */
    #define TC_IGT_INMODE                 CLRBIT(TC_IGT_Dir_REG,TC_IGT_Bit)             
    #define TC_IGT_OUTMODE                SETBIT(TC_IGT_Dir_REG,TC_IGT_Bit)
 
    #define TC_CTS_INMODE                 CLRBIT(TC_CTS_Dir_REG,TC_CTS_Bit)             
    #define TC_CTS_OUTMODE                SETBIT(TC_CTS_Dir_REG,TC_CTS_Bit)
 
    #define TC_RTS_INMODE                 CLRBIT(TC_RTS_Dir_REG,TC_RTS_Bit)             
    #define TC_RTS_OUTMODE                SETBIT(TC_RTS_Dir_REG,TC_RTS_Bit)
 
    #define TC_RING_INMODE                 CLRBIT(TC_RING_Dir_REG,TC_RING_Bit)             
    #define TC_RING_OUTMODE                SETBIT(TC_RING_Dir_REG,TC_RING_Bit)
 
    #define TC_TXD_INMODE                 CLRBIT(TC_TXD_Dir_REG,TC_TXD_Bit)             
    #define TC_TXD_OUTMODE                SETBIT(TC_TXD_Dir_REG,TC_TXD_Bit)
 
    #define TC_RXD_INMODE                 CLRBIT(TC_RXD_Dir_REG,TC_RXD_Bit)             
    #define TC_RXD_OUTMODE                SETBIT(TC_RXD_Dir_REG,TC_RXD_Bit)
 
/* MUL-IN MUL-OUT define */
    #define MULTY_OUT_INMODE                 CLRBIT(MULTY_OUT_Dir_REG,MULTY_OUT_Bit)             
    #define MULTY_OUT_OUTMODE                SETBIT(MULTY_OUT_Dir_REG,MULTY_OUT_Bit)
 
    #define MULTY_IN_INMODE                 CLRBIT(MULTY_IN_Dir_REG,MULTY_IN_Bit)             
    #define MULTY_IN_OUTMODE                SETBIT(MULTY_IN_Dir_REG,MULTY_IN_Bit)
 
/* UART define */
    #define PIN_TXD_INMODE                 CLRBIT(PIN_TXD_Dir_REG,PIN_TXD_Bit)             
    #define PIN_TXD_OUTMODE                SETBIT(PIN_TXD_Dir_REG,PIN_TXD_Bit)
 
    #define PIN_RXD_INMODE                 CLRBIT(PIN_RXD_Dir_REG,PIN_RXD_Bit)             
    #define PIN_RXD_OUTMODE                SETBIT(PIN_RXD_Dir_REG,PIN_RXD_Bit)
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -