📄 commdrv.c
字号:
/******************************************************************************
File Name : CommDrv.c
Author : Rene Trenado
Location : Motorola Applications Lab, Baja California
Date Created : July 2000
Current Revision : 0.0
Notes : This file contains the code to drive the serial port
*******************************************************************************/
#include "CommDrv.h"
static void CommDrvDefaultProc (register BYTE value);
static void (* EvtProcedure) (register BYTE value) = CommDrvDefaultProc;
/***********************************************************************
Function : CommDrvDefaultProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
static void CommDrvDefaultProc (BYTE value) {
(void)value;
}
/***********************************************************************
Function : UseDefaultCommProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void UseDefaultCommProc (void) {
DisableInterrupts;
EvtProcedure = CommDrvDefaultProc;
EnableInterrupts;
}
/***********************************************************************
Function : OpenComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void OpenComm (register BYTE BaudRate, register CommOptions Options) {
SCBR = BaudRate; // Set the baud rate
SCC1 = 0x40; // Enable baud rate generator //
SCC2 = Options;
}
/***********************************************************************
Function : CloseComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CloseComm (void) {
}
/***********************************************************************
Function : AssignCommEventProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CommEventProc (EventProc Proc) {
DisableInterrupts; // Disable Interrupts
EvtProcedure = Proc; // Install service handler
EnableInterrupts; // Enable interrupts
}
/***********************************************************************
Function : WriteComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteComm (BYTE c) {
SCDR = c; // Write char to SCI data register
while (!(SCS1 & 0x80)); // Wait until character gets transmited
}
/***********************************************************************
Function : ReadComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
BYTE ReadComm (void) {
while (!(SCS1 & 0x20));
return SCDR;
}
/***********************************************************************
Function : WriteCommStr
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteCommStr (char* string) {
while (*string) {
SCDR = *string++;
while (!(SCS1 & 0x80));
}
}
/***********************************************************************
Function : CommRx
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void @interrupt UartRxISR (void) {
SCS1; // acknowledge this IRQ
EvtProcedure (SCDR); // Fordward the character to a service routine
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -