1 /** ###################################################################
\r
2 ** THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
\r
3 ** Filename : PE_Timer.C
\r
4 ** Project : RTOSDemo
\r
5 ** Processor : MC9S12DP256BCPV
\r
6 ** Beantype : PE_Timer
\r
7 ** Version : Driver 01.00
\r
8 ** Compiler : Metrowerks HC12 C Compiler
\r
9 ** Date/Time : 14/06/2005, 16:34
\r
11 ** This bean "PE_Timer" implements internal methods and definitions
\r
12 ** used by beans working with timers.
\r
15 ** No public methods
\r
17 ** (c) Copyright UNIS, spol. s r.o. 1997-2002
\r
18 ** UNIS, spol. s r.o.
\r
22 ** http : www.processorexpert.com
\r
23 ** mail : info@processorexpert.com
\r
24 ** ###################################################################*/
\r
27 /* MODULE PE_Timer. */
\r
29 #include "PE_Timer.h"
\r
33 typedef unsigned long UINT32;
\r
38 unsigned short hi16,lo16;
\r
43 unsigned short dummy;
\r
57 ** ===================================================================
\r
58 ** Method : PE_Timer_LngMul (bean PE_Timer)
\r
61 ** This method is internal. It is used by Processor Expert
\r
63 ** ===================================================================
\r
65 void PE_Timer_LngMul(dword va1, dword va2, dlong *var)
\r
67 OP_UINT32 *va = (OP_UINT32*)&va1;
\r
68 OP_UINT32 *vb = (OP_UINT32*)&va2;
\r
69 OP_UINT64 *vr = (OP_UINT64*)var;
\r
72 vr->val.lo32 = ((UINT32)va->s.lo16)*((UINT32)vb->s.lo16);
\r
76 tmp.val = ((UINT32)va->s.lo16)*((UINT32)vb->s.hi16);
\r
77 vr->m.mid += (UINT32)tmp.s.lo16;
\r
78 vr->val.hi32 += (UINT32)tmp.s.hi16;
\r
83 tmp.val = ((UINT32)va->s.hi16)*((UINT32)vb->s.lo16);
\r
84 vr->m.mid += (UINT32)tmp.s.lo16;
\r
85 vr->val.hi32 += (UINT32)tmp.s.hi16;
\r
87 vr->val.hi32 += ((UINT32)va->s.hi16)*((UINT32)vb->s.hi16);
\r
91 ** ===================================================================
\r
92 ** Method : PE_Timer_LngHi1 (bean PE_Timer)
\r
95 ** This method is internal. It is used by Processor Expert
\r
97 ** ===================================================================
\r
99 bool PE_Timer_LngHi1(dword High, dword Low, word *Out)
\r
101 if ((High == 0) && ((Low >> 24) == 0))
\r
102 if ((Low & 0x80) != 0) {
\r
103 if ((Low >> 8) < 0xFFFF) {
\r
104 *Out = ((unsigned int)(Low >> 8))+1;
\r
109 *Out = (unsigned int)(Low >> 8);
\r
112 *Out = (unsigned int)(Low >> 8);
\r
117 ** ===================================================================
\r
118 ** Method : PE_Timer_LngHi2 (bean PE_Timer)
\r
121 ** This method is internal. It is used by Processor Expert
\r
123 ** ===================================================================
\r
125 bool PE_Timer_LngHi2(dword High, dword Low, word *Out)
\r
128 if ((Low & 0x8000) != 0) {
\r
129 if ((Low >> 16) < 0xFFFF) {
\r
130 *Out = ((unsigned int)(Low >> 16))+1;
\r
135 *Out = (unsigned int)(Low >> 16);
\r
138 *Out = (unsigned int)(Low >> 16);
\r
143 ** ===================================================================
\r
144 ** Method : PE_Timer_LngHi3 (bean PE_Timer)
\r
147 ** This method is internal. It is used by Processor Expert
\r
149 ** ===================================================================
\r
151 bool PE_Timer_LngHi3(dword High, dword Low, word *Out)
\r
153 if ((High >> 8) == 0)
\r
154 if ((Low & 0x800000) != 0) {
\r
155 if (((Low >> 24) | (High << 8)) < 0xFFFF) {
\r
156 *Out = ((unsigned int)((Low >> 24) | (High << 8)))+1;
\r
161 *Out = (unsigned int)((Low >> 24) | (High << 8));
\r
164 *Out = (unsigned int)((Low >> 24) | (High << 8));
\r
169 ** ===================================================================
\r
170 ** Method : PE_Timer_LngHi4 (bean PE_Timer)
\r
173 ** This method is internal. It is used by Processor Expert
\r
175 ** ===================================================================
\r
177 bool PE_Timer_LngHi4(dword High, dword Low, word *Out)
\r
179 if ((High >> 16) == 0)
\r
180 if ((Low & 0x80000000) != 0) {
\r
181 if (High < 0xFFFF) {
\r
182 *Out = ((unsigned int)High)+1;
\r
187 *Out = (unsigned int)High;
\r
190 *Out = (unsigned int)High;
\r
196 /* END PE_Timer. */
\r
199 ** ###################################################################
\r
201 ** This file was created by UNIS Processor Expert 03.33 for
\r
202 ** the Motorola HCS12 series of microcontrollers.
\r
204 ** ###################################################################
\r