📄 commtest.c
字号:
/*
*********************************************************************************************************
* Embedded Systems Building Blocks
* Complete and Ready-to-Use Modules in C
*
* Asynchronous Serial Communications
* Buffered Serial I/O
* (RTOS)
*
* (c) Copyright 1999, Jean J. Labrosse, Weston, FL
* All Rights Reserved
*
* Filename : COMMTEST.C
* Programmer : Jean J. Labrosse
* Translated by : Won-Ho, Sung
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* 牢农风靛
*********************************************************************************************************
*/
#include "c:\\IC96\\Work\\ucos_ii\\includes.h"
#include "CommRtos.h"
/*$PAGE*/
/*
*********************************************************************************************************
* 惑荐
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* 单捞磐 鸥涝
*********************************************************************************************************
*/
typedef struct {
INT16U RingBufRxCtr; /* Rx 傅 滚欺俊 历厘等 单捞磐 荐 */
OS_EVENT *RingBufRxSem; /* 荐脚 技付器绢狼 器牢磐 */
INT8U *RingBufRxInPtr; /* 促澜 单捞磐甫 历厘且 镑阑 啊府虐绰 器牢磐 */
INT8U *RingBufRxOutPtr; /* 促澜俊 佬绢哎 单捞磐甫 啊府虐绰 器牢磐 */
INT8U RingBufRx[COMM_RX_BUF_SIZE]; /* 荐脚侩 傅 滚欺 历厘康开(Rx) */
INT16U RingBufTxCtr; /* Tx 傅 滚欺俊 历厘等 单捞磐 荐 */
OS_EVENT *RingBufTxSem; /* 价脚 技付器绢狼 器牢磐 */
INT8U *RingBufTxInPtr; /* 促澜 单捞磐甫 历厘且 镑阑 啊府虐绰 器牢磐 */
INT8U *RingBufTxOutPtr; /* 促澜俊 佬绢哎 单捞磐甫 啊府虐绰 器牢磐 */
INT8U RingBufTx[COMM_TX_BUF_SIZE]; /* 价脚侩 傅 滚欺 历厘康开(Tx) */
} COMM_RING_BUF;
OS_EVENT *P1Sem, *P2Sem, *P3Sem, *P4Sem;
/*
*********************************************************************************************************
* 傈开函荐
*********************************************************************************************************
*/
COMM_RING_BUF ComBuf;
COMM_RING_BUF *pbuf;
void RxIntHandler(void)
{
INT8U c;
c = sbuf; /* Process received character */
switch(c)
{
case '1':
OSSemPost(P1Sem);
break;
case '2':
OSSemPost(P2Sem);
break;
case '3':
OSSemPost(P3Sem);
break;
case '4':
OSSemPost(P4Sem);
break;
}
}
void TxIntHandler(void)
{
}
/*$PAGE*/
/*
*********************************************************************************************************
* 烹脚葛碘 檬扁拳
*
*
* 汲疙 : 览侩橇肺弊伐篮 烹脚葛碘阑 檬扁拳 窍扁 困秦 捞 窃荐甫 龋免茄促.
* 烹脚葛碘狼 促弗 窃荐甫 龋免窍扁 傈俊 馆靛矫 捞 窃荐甫 刚历 龋免秦具 茄促.
* 傈崔牢磊 : 绝澜
*********************************************************************************************************
*/
void CommInit (void)
{
INT8U val;
pbuf = &ComBuf; /* COMM1俊 措茄 傅 滚欺 檬扁拳 */
pbuf->RingBufRxCtr = 0;
pbuf->RingBufRxInPtr = &pbuf->RingBufRx[0];
pbuf->RingBufRxOutPtr = &pbuf->RingBufRx[0];
pbuf->RingBufRxSem = OSSemCreate(0);
pbuf->RingBufTxCtr = 0;
pbuf->RingBufTxInPtr = &pbuf->RingBufTx[0];
pbuf->RingBufTxOutPtr = &pbuf->RingBufTx[0];
pbuf->RingBufTxSem = OSSemCreate(COMM_TX_BUF_SIZE);
P1Sem = OSSemCreate(0);
P2Sem = OSSemCreate(0);
P3Sem = OSSemCreate(0);
P4Sem = OSSemCreate(0);
/* Prevent other bits of ioc1 from being altered */
wsr = 15;
val = ioc1;
wsr = 0;
val |= 0x20;
sp_con = 0x09; /* mode1 & recieve enable */
ioc1 = val; /* select TxD */
/* Baud rate must be written in the order of LSB first at the same address */
baud_rate = ((unsigned char) BAUD_REG);
baud_rate = ((unsigned char) (BAUD_REG >> 8));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -