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

📄 485.h

📁 458通讯
💻 H
字号:
#ifndef _485
#define _485
//---------------------------------------------------------------------

//硬件连接:
//   mega8   max485
//   PD0     RX
//   PD1     TX
//   PD4     TE
#define INT 1
#define uchar unsigned char
#define uint unsigned int
#define SET_T1_INTR() TIMSK |= 0b00000100
#define CLR_T1_INTR() TIMSK &= 0b11111011

#define TE 4
#define set_485_enable()   do{PORTD |=(1<<TE);}while(0)
#define clr_485_disable()  do{PORTD &=~(1<<TE);}while(0)

#define PORTD_INIT() do{DDRD |= (1<<TE);PORTD &= ~(1<<TE);}while(0)
#define PORT_INIT() do{PORTD_INIT();}while(0)

#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>
#define BM(n) (1 << (n))

/****** com 处理定义start********/
#define ENABLE_UART0_TX_INT()       do { UCSRB |= BM(UDRIE); } while (0)
#define DISABLE_UART0_TX_INT()      do { UCSRB &= ~BM(UDRIE); } while (0) 
#define CLEAR_UART0_TX_INT()        do { UCSRA &= ~BM(UDRE); } while (0)
#define SET_UART0_TX_INT()          do { UCSRA |= BM(UDRE); } while (0)
#define UART1_RXD       0 // PD.0 - Input:  UART1 RXD
#define UART1_TXD       1 // PD.1 - Output: UART1 TXD
#define UART0_SEND(x)               do { UDR = (x); } while (0)
#define UART0_WAIT()                do { while (!(UCSRA & BM(UDRE))); CLEAR_UART0_TX_INT(); } while (0)
#define UART0_WAIT_AND_SEND(x)      do { UART0_WAIT(); UART0_SEND(x); } while (0)
#define PORTd_INIT() DDRD |= 0X10; PORTD &=0XEF
//=================================================
//
//=================================================
#define MAX_WAIT_TIME 92
#define MAX_ZHENERR 5
//=================================================
//    pdu缓冲区
//=================================================
#define BUFSIZE 50
uchar TxAdu_buf[BUFSIZE];
uchar RxAdu_buf[BUFSIZE];
//=================================================
void t_485(unsigned char*);
uchar r_485(void);
void comInit(void);
void USART_Transmit( uchar);
void Timer1_init(void);
void delay_us(int);
void delay_ms(unsigned int);
inline void OPEN_TIMER1(void);
inline void CLOSE_TIMER1(void);
inline void OPEN_USART1_ReINTERRUPT(void);
inline void CLOSE_USART1_ReINTERRUPT(void);
inline void CLOSE_WaitResponsionClk(void);
inline void OPEN_WaitResponsionClk(void);
#endif

⌨️ 快捷键说明

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