📄 485.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 + -