summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C')
-rw-r--r--FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C205
1 files changed, 205 insertions, 0 deletions
diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C
new file mode 100644
index 000000000..e575af48c
--- /dev/null
+++ b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/CODE/_COM0.C
@@ -0,0 +1,205 @@
+/** ###################################################################
+** THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
+** Filename : COM0.C
+** 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
+** ###################################################################*/
+
+/* MODULE COM0. */
+
+#pragma MESSAGE DISABLE C4002 /* WARNING C4002: Result not used is ignored */
+#pragma MESSAGE DISABLE C4301 /* INFORMATION C4301: Inline expansion done for function call */
+
+#include "COM0.h"
+#include "TickTimer.h"
+#include "Byte1.h"
+
+/* Definition of DATA and CODE segments for this bean. User can specify where
+ these segments will be located on "Build options" tab of the selected CPU bean. */
+#pragma DATA_SEG COM0_DATA /* Data section for this module. */
+#pragma CODE_SEG COM0_CODE /* Code section for this module. */
+
+
+#define OVERRUN_ERR 1 /* Overrun error flag bit */
+#define FRAMING_ERR 2 /* Framing error flag bit */
+#define PARITY_ERR 4 /* Parity error flag bit */
+#define CHAR_IN_RX 8 /* Char is in RX buffer */
+#define FULL_TX 16 /* Full transmit buffer */
+#define RUNINT_FROM_TX 32 /* Interrupt is in progress */
+#define FULL_RX 64 /* Full receive buffer */
+#define NOISE_ERR 128 /* Noise erorr flag bit */
+#define IDLE_ERR 256 /* Idle character flag bit */
+#define BREAK_ERR 512 /* Break detect */
+
+static word SerFlag; /* Flags for serial communication */
+ /* Bits: 0 - OverRun error */
+ /* 1 - Framing error */
+ /* 2 - Parity error */
+ /* 3 - Char in RX buffer */
+ /* 4 - Full TX buffer */
+ /* 5 - Running int from TX */
+ /* 6 - Full RX buffer */
+ /* 7 - Noise error */
+ /* 8 - Idle character */
+ /* 9 - Break detected */
+ /* 10 - Unused */
+static word PrescHigh;
+static byte NumMode; /* Number of selected baud mode */
+
+
+/*
+** ===================================================================
+** Method : HWEnDi (bean AsynchroSerial)
+**
+** Description :
+** This method is internal. It is used by Processor Expert
+** only.
+** ===================================================================
+*/
+static void HWEnDi(void)
+{
+ SCI0CR2_TE = 1; /* Enable transmitter */
+ SCI0CR2_RE = 1; /* Enable receiver */
+ SCI0CR2_RIE = 1; /* Enable recieve interrupt */
+}
+
+/*
+** ===================================================================
+** 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
+** ===================================================================
+*/
+byte COM0_SetBaudRateMode(byte Mod)
+{
+ static const word COM0_PrescHigh[4] = {41,81,163,326};
+
+ if(Mod >= 4) /* Is mode in baud mode list */
+ return ERR_VALUE; /* If no then error */
+ NumMode = Mod; /* New baud mode */
+ PrescHigh = COM0_PrescHigh[Mod]; /* Prescaler in high speed mode */
+ SCI0BD = PrescHigh; /* Set prescaler bits */
+ return ERR_OK; /* OK */
+}
+
+/*
+** ===================================================================
+** Method : COM0_Init (bean AsynchroSerial)
+**
+** Description :
+** This method is internal. It is used by Processor Expert
+** only.
+** ===================================================================
+*/
+void COM0_Init(void)
+{
+ PrescHigh = 41; /* Precaler in high speed mode */
+ SerFlag = 0; /* Reset flags */
+ NumMode = 0; /* Number of selected baud mode */
+ /* SCI0CR1: LOOPS=0,SCISWAI=1,RSRC=0,M=0,WAKE=0,ILT=0,PE=0,PT=0 */
+ SCI0CR1 = 64; /* Set the SCI configuration */
+ /* SCI0SR2: ??=0,??=0,??=0,??=0,??=0,BRK13=0,TXDIR=0,RAF=0 */
+ SCI0SR2 = 0; /* Set the Break Character Length and Transmitter pin data direction in Single-wire mode */
+ SCI0SR1; /* Reset interrupt request flags */
+ /* SCI0CR2: SCTIE=0,TCIE=0,RIE=0,ILIE=0,TE=0,RE=0,RWU=0,SBK=0 */
+ SCI0CR2 = 0; /* Disable error interrupts */
+ SCI0BD = PrescHigh; /* Set prescaler bits */
+ HWEnDi(); /* Enable/disable device according to status flags */
+}
+
+
+/* END COM0. */
+
+
+/*
+** ###################################################################
+**
+** This file was created by UNIS Processor Expert 03.33 for
+** the Motorola HCS12 series of microcontrollers.
+**
+** ###################################################################
+*/