You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
192 lines
7.4 KiB
C
192 lines
7.4 KiB
C
/** ###################################################################
|
|
** THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
|
|
** Filename : COM0.H
|
|
** Project : RTOSDemo
|
|
** Processor : MC9S12DP256BCPV
|
|
** Beantype : AsynchroSerial
|
|
** Version : Bean 02.231, Driver 01.08, CPU db: 2.87.283
|
|
** Compiler : Metrowerks HC12 C Compiler
|
|
** Date/Time : 19/06/2005, 15:07
|
|
** Abstract :
|
|
** This bean "AsynchroSerial" implements an asynchronous serial
|
|
** communication. The bean supports different settings of
|
|
** parity, word width, stop-bit and communication speed,
|
|
** user can select interrupt or polling handler.
|
|
** Communication speed can be changed also in runtime.
|
|
** The bean requires one on-chip asynchronous serial channel.
|
|
** Settings :
|
|
** Serial channel : SCI0
|
|
**
|
|
** Protocol
|
|
** Init baud rate : 38400baud
|
|
** Width : 8 bits
|
|
** Stop bits : 1
|
|
** Parity : none
|
|
** Breaks : Disabled
|
|
**
|
|
** Registers
|
|
** Input buffer : SCI0DRL [207]
|
|
** Output buffer : SCI0DRL [207]
|
|
** Control register : SCI0CR1 [202]
|
|
** Mode register : SCI0CR2 [203]
|
|
** Baud setting reg. : SCI0BD [200]
|
|
** Special register : SCI0SR1 [204]
|
|
**
|
|
** Input interrupt
|
|
** Vector name : INT_SCI0
|
|
** Priority : 1
|
|
**
|
|
** Output interrupt
|
|
** Vector name : INT_SCI0
|
|
** Priority : 1
|
|
**
|
|
** Used pins :
|
|
** ----------------------------------------------------
|
|
** Function | On package | Name
|
|
** ----------------------------------------------------
|
|
** Input | 89 | PS0_RxD0
|
|
** Output | 90 | PS1_TxD0
|
|
** ----------------------------------------------------
|
|
**
|
|
**
|
|
** Used baud modes :
|
|
** ----------------------------------------------------
|
|
** No. | Mode ID | Baud rate
|
|
** ----------------------------------------------------
|
|
** 0 | Bm_38400baud | 38400baud
|
|
** 1 | Bm_19200baud | 19200baud
|
|
** 2 | Bm_9600baud | 9600baud
|
|
** 3 | Bm_4800baud | 4800baud
|
|
** ----------------------------------------------------
|
|
** Contents :
|
|
** SetBaudRateMode - byte COM0_SetBaudRateMode(byte Mod);
|
|
**
|
|
** (c) Copyright UNIS, spol. s r.o. 1997-2002
|
|
** UNIS, spol. s r.o.
|
|
** Jundrovska 33
|
|
** 624 00 Brno
|
|
** Czech Republic
|
|
** http : www.processorexpert.com
|
|
** mail : info@processorexpert.com
|
|
** ###################################################################*/
|
|
|
|
#ifndef __COM0
|
|
#define __COM0
|
|
|
|
/* MODULE COM0. */
|
|
|
|
#include "Cpu.h"
|
|
|
|
#define COM0_Bm_38400baud 0 /* Constant for switch to mode 0 */
|
|
#define COM0_Bm_19200baud 1 /* Constant for switch to mode 1 */
|
|
#define COM0_Bm_9600baud 2 /* Constant for switch to mode 2 */
|
|
#define COM0_Bm_4800baud 3 /* Constant for switch to mode 3 */
|
|
|
|
|
|
|
|
#ifndef __BWUserType_tItem
|
|
#define __BWUserType_tItem
|
|
typedef struct { /* Item of the index table for possible baudrates */
|
|
word div; /* divisior */
|
|
byte val; /* values of the prescalers */
|
|
} tItem;
|
|
#endif
|
|
#ifndef __BWUserType_COM0_TError
|
|
#define __BWUserType_COM0_TError
|
|
typedef union {
|
|
byte err;
|
|
struct {
|
|
bool OverRun : 1; /* OverRun error flag */
|
|
bool Framing : 1; /* Framing error flag */
|
|
bool Parity : 1; /* Parity error flag */
|
|
bool RxBufOvf : 1; /* Rx buffer full error flag */
|
|
bool Noise : 1; /* Noise error */
|
|
bool Break : 1; /* Break detect */
|
|
bool Idle : 1; /* Idle characted */
|
|
}errName;
|
|
} COM0_TError;
|
|
#endif
|
|
#ifndef __BWUserType_TDirection
|
|
#define __BWUserType_TDirection
|
|
typedef enum { /* */
|
|
TXD_INPUT,
|
|
TXD_OUTPUT
|
|
} TDirection;
|
|
#endif
|
|
|
|
#ifndef __BWUserType_COM0_TComData
|
|
#define __BWUserType_COM0_TComData
|
|
typedef byte COM0_TComData ; /* User type for communication. Size of this type depends on the communication data witdh. */
|
|
#endif
|
|
|
|
#pragma CODE_SEG COM0_CODE /* Code section for this module. */
|
|
|
|
byte COM0_SetBaudRateMode(byte Mod);
|
|
/*
|
|
** ===================================================================
|
|
** Method : COM0_SetBaudRateMode (bean AsynchroSerial)
|
|
**
|
|
** Description :
|
|
** This method changes the channel communication speed (baud
|
|
** rate). This method can be used only if you specify a list
|
|
** of possible period settings at design time (see <Timing
|
|
** dialog box> - Runtime setting - from a list of values).
|
|
** Each of these settings constitutes a mode and Processor
|
|
** Expert^[TM] assigns them a mode identifier. The prescaler
|
|
** and compare values corresponding to each mode are
|
|
** calculated at design time. You may switch modes at
|
|
** runtime by referring only to a mode identifier. No
|
|
** run-time calculations are performed, all the calculations
|
|
** are performed at design time.
|
|
** Parameters :
|
|
** NAME - DESCRIPTION
|
|
** Mod - Timing mode to set
|
|
** Returns :
|
|
** --- - Error code, possible codes:
|
|
** ERR_OK - OK
|
|
** ERR_SPEED - This device does not work in
|
|
** the active speed mode
|
|
** ===================================================================
|
|
*/
|
|
|
|
#pragma CODE_SEG __NEAR_SEG NON_BANKED /* Interrupt section for this module. Placement will be in NON_BANKED area. */
|
|
__interrupt void COM0_Interrupt(void);
|
|
#pragma CODE_SEG COM0_CODE /* Code section for this module. */
|
|
/*
|
|
** ===================================================================
|
|
** Method : COM0_Interrupt (bean AsynchroSerial)
|
|
**
|
|
** Description :
|
|
** This method is internal. It is used by Processor Expert
|
|
** only.
|
|
** ===================================================================
|
|
*/
|
|
|
|
|
|
void COM0_Init(void);
|
|
/*
|
|
** ===================================================================
|
|
** Method : COM0_Init (bean AsynchroSerial)
|
|
**
|
|
** Description :
|
|
** This method is internal. It is used by Processor Expert
|
|
** only.
|
|
** ===================================================================
|
|
*/
|
|
|
|
|
|
#pragma CODE_SEG DEFAULT /* Change code section to DEFAULT. */
|
|
|
|
/* END COM0. */
|
|
|
|
/*
|
|
** ###################################################################
|
|
**
|
|
** This file was created by UNIS Processor Expert 03.33 for
|
|
** the Motorola HCS12 series of microcontrollers.
|
|
**
|
|
** ###################################################################
|
|
*/
|
|
|
|
#endif /* ifndef __COM0 */
|