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

📄 comm_usart.h

📁 PIC Kit serial source code.
💻 H
字号:
//==================================================================== 
//--- COPYRIGHT
//==================================================================== 
// Copyright 2006 Microchip Technology Inc.
// 
// Microchip Technology Inc. ("Microchip") licenses this software to
// you solely for use with Microchip products. The software is owned
// by Microchip and is protected under applicable copyright laws. All
// rights reserved.
// 
// SOFTWARE IS PROVIDED IN AN "AS IS." MICROCHIP EXPRESSLY DISCLAIMS ANY
// WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
// PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL MICROCHIP
// BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL
// DAMAGES, LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF
// PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
// BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF),
// ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER SIMILAR COSTS.
// 
//==================================================================== 
//--- TITLE
//==================================================================== 
//    Filename:            comm_usart.h
//    Microcontroller:     PIC18F2550
//    Compiled using:      C18 V3.00
//
//    Author:              Mark Enochson
//    Company:             Microchip Technology Inc.
//
//==================================================================== 
//--- DESCRIPTION
//==================================================================== 
//
//==================================================================== 
//--- HISTORY
//==================================================================== 
//
//    0001 - 08-01-06 - ME
//    - initial release
//
//==================================================================== 

#ifndef __COMM_USART_H
#define __COMM_USART_H
#include "exec.h"


//------------------------------------------------
//--- RESOURCES
//------------------------------------------------
#define  USART_TX_TRIS     TRISCbits.TRISC6
#define  USART_RX_TRIS     TRISCbits.TRISC7

#define  USART_AUX1_TRIS   TRISBbits.TRISB0
#define  USART_AUX2_TRIS   TRISBbits.TRISB1
#define  USART_AUX1_PORT   PORTBbits.RB0
#define  USART_AUX2_PORT   PORTBbits.RB1


//------------------------------------------------
//--- DEFINITIONS / DECLARATIONS
//------------------------------------------------

//--- INCOMING DATA TAG(S)
#define  COMM_TAG_USART_INIT                 0x80
#define  COMM_TAG_USART_RESET                0x81
#define  COMM_TAG_USART_DATA_XMT             0x82
#define  COMM_TAG_USART_DATA_SRCV            0x83
#define  COMM_TAG_USART_DATA_ARCV_ENABLE     0x84
#define  COMM_TAG_USART_DATA_ARCV_DISABLE    0x85
#define  COMM_TAG_USART_BREAK_XMT            0x86
#define  COMM_TAG_USART_BREAK_DATA_XMT       0x87
#define  COMM_TAG_USART_BAUD                 0x88
#define  COMM_TAG_USART_CKP_SET              0x89
#define  COMM_TAG_USART_CKP_RST              0x8A
#define  COMM_TAG_USART_9BIT_SET             0x8B
#define  COMM_TAG_USART_9BIT_RST             0x8C

#define  COMM_TAG_USART_AUX1_RST             0x90
#define  COMM_TAG_USART_AUX1_SET             0x91
#define  COMM_TAG_USART_AUX1_OUT             0x92
#define  COMM_TAG_USART_AUX1_IN              0x93
#define  COMM_TAG_USART_AUX1_WAIT_0          0x94
#define  COMM_TAG_USART_AUX1_WAIT_1          0x95
#define  COMM_TAG_USART_AUX2_RST             0x96
#define  COMM_TAG_USART_AUX2_SET             0x97
#define  COMM_TAG_USART_AUX2_OUT             0x98
#define  COMM_TAG_USART_AUX2_IN              0x99
#define  COMM_TAG_USART_AUX2_WAIT_0          0x9A
#define  COMM_TAG_USART_AUX2_WAIT_1          0x9B

//--- OUTGOING DATA TAG(S)
#define  COMM_TAG_USART_EVENT_BYTE_TX        0x80
#define  COMM_TAG_USART_EVENT_BYTE_RX        0x81
#define  COMM_TAG_USART_EVENT_STATUS_ERR     0x82
#define  COMM_TAG_USART_EVENT_BREAK_TX       0x83


//------------------------------------------------
//--- COMM USART CONTROL BLOCK
//------------------------------------------------
#define  COMM_CB_USART_MODE_REG              exec_control_B[16]._byte

#define  COMM_CB_USART_CONFIG_REG            exec_control_B[17]._byte
#define  COMM_CB_USART_CONFIG_CKP_FLAG       exec_control_B[17].bit0
#define  COMM_CB_USART_CONFIG_9BIT_FLAG      exec_control_B[17].bit1
#define  COMM_CB_USART_CONFIG_RCV_DIS_FLAG   exec_control_B[17].bit2

#define  COMM_CB_USART_EVENT_BYTE_RX_FLAG    exec_control_B[18].bit0
#define  COMM_CB_USART_EVENT_BYTE_TX_FLAG    exec_control_B[18].bit1
#define  COMM_CB_USART_EVENT_STATUS_ERR_FLAG exec_control_B[18].bit2
#define  COMM_CB_USART_EVENT_BREAK_TX_FLAG   exec_control_B[18].bit3

#define  COMM_CB_USART_19_REG                exec_control_B[19]._byte
#define  COMM_CB_USART_20_REG                exec_control_B[20]._byte
//#define  COMM_CB_USART_21_REG                exec_control_B[21]._byte

#define  COMM_CB_USART_AUX1_PORT_FLAG        exec_control_B[21].bit0
#define  COMM_CB_USART_AUX2_PORT_FLAG        exec_control_B[21].bit1
#define  COMM_CB_USART_AUX1_TRIS_FLAG        exec_control_B[21].bit2
#define  COMM_CB_USART_AUX2_TRIS_FLAG        exec_control_B[21].bit3

#define  COMM_CB_USART_BRG_LO_REG            exec_control_B[22]._byte
#define  COMM_CB_USART_BRG_HI_REG            exec_control_B[23]._byte


//------------------------------------------------
//--- COMM USART STATUS BLOCK
//------------------------------------------------
#define  COMM_SB_USART_REG12                 exec_status_B[12]._b
#define  COMM_SB_USART_REG13                 exec_status_B[13]._b
#define  COMM_SB_USART_REG14                 exec_status_B[14]._b
#define  COMM_SB_USART_REG15                 exec_status_B[15]._b
#define  COMM_SB_USART_REG16                 exec_status_B[16]._b
#define  COMM_SB_USART_REG17                 exec_status_B[17]._b
#define  COMM_SB_USART_REG18                 exec_status_B[18]._b
#define  COMM_SB_USART_REG19                 exec_status_B[19]._b

#define  COMM_SB_USART_STATUS_FERR_FLAG      exec_status_B[12].bit0
#define  COMM_SB_USART_STATUS_OERR_FLAG      exec_status_B[12].bit1
#define  COMM_SB_USART_INIT_ERR_FLAG         exec_status_B[12].bit2
#define  COMM_SB_USART_ERR_FLAG              exec_status_B[12].bit7

#define  COMM_SB_USART_ERR_REG               exec_status_B[12]._byte
#define  COMM_SB_USART_ERR_REG_MASK          (TD_BYTE) 0x7F

#define  COMM_SB_USART_MODE_REG              exec_status_B[13]._byte

#define  COMM_SB_USART_CONFIG_REG            exec_status_B[14]._byte
#define  COMM_SB_USART_CONFIG_CKP_FLAG       exec_status_B[14].bit0
#define  COMM_SB_USART_CONFIG_9BIT_FLAG      exec_status_B[14].bit1
#define  COMM_SB_USART_CONFIG_RCV_DIS_FLAG   exec_status_B[14].bit2

#define  COMM_SB_USART_AUX1_PORT_FLAG        exec_status_B[16].bit0
#define  COMM_SB_USART_AUX2_PORT_FLAG        exec_status_B[16].bit1
#define  COMM_SB_USART_AUX1_TRIS_FLAG        exec_status_B[16].bit2
#define  COMM_SB_USART_AUX2_TRIS_FLAG        exec_status_B[16].bit3

#define  COMM_SB_USART_BRG_LO_REG            exec_status_B[18]._byte
#define  COMM_SB_USART_BRG_HI_REG            exec_status_B[19]._byte

//------------------------------------------------
//--- VARBS USING SHARED RAM
//------------------------------------------------
#define  COMM_USART_FLAGS                    comm_varbs_B[0]._b

#define  COMM_USART_RCV_FLAG                 comm_varbs_B[0].bit0

//------------------------------------------------
//--- PROTOTYPES
//------------------------------------------------
TD_BYTE comm_usart_init(void);
void comm_usart_reset(void);
void comm_usart_svc(void);
void comm_usart_postproc(void);
void comm_usart_mode_set(void);
//void comm_usart_rcv(void);
void comm_usart_rcv_isr(void);

#endif // __COMM_USART_H

⌨️ 快捷键说明

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