HTEB1
User manual
{ |
|
|
u8 *data, *text, c,d; |
|
|
if (line==0) text = &Line0[0]; | // last digit = start address | |
else text = &Line1[0]; |
|
|
data = text+14; |
|
|
d=3; |
|
|
while (d) |
|
|
{ |
|
|
*data = '0'; |
| // default = '0' |
c = code & 0x000f; |
| // check digit |
if (c) |
| // if > 0 chk for value |
{ |
|
|
if (c < 10) *data = '0'+c; | // 0..9 | |
else *data = |
| // a..f |
} |
|
|
| // next digit | |
code >>= 4; |
|
|
|
| |
} |
|
|
LCDWriteLine(line,text); | // show result | |
} |
|
|
void Delay(void) |
| // "manual" delay |
{ |
|
|
long z = 0x010000; |
|
|
|
| |
} |
|
|
u16 oldval[2]; |
|
|
u16 Average(u8 channel, u16 adval) | // calculate av of last 15 values | |
{ |
|
|
if
else
oldval[channel] = ((oldval[channel]*15)+adval)>>4; return oldval[channel];
}
/****************************************
setup : CLK/8 (=1µs @ 8MHz)
****************************************/
void Test_Timer_V(void)
{ |
|
TCRV0 = 0x080x01; | // Clear by CompMatchA; IntClk/8 |
TCRV1 = 0x01; | // Clk/2, no external Trigger |
TCSRV = 0x080x01; | // 0=onCompMatchA, 1=onCompMatchB (output on P76) |
TCORA = 100; | // set periode to 100 => 10.000Hz |
TCORB = 75; | // set init dutycycle to 75% |
} |
|
void main(void) |
|
{ |
|
u16 val; |
|
LCDInit(); | // init ports and LCD |
Test_Timer_V(); | // for |
while(1) | // do forever... |
{
val = Average(0,Read_AD(0)); ShowHexValue(val,0);
val = Average(1,Read_AD(1)); ShowHexValue(val,1);
val /= 10; // max. 1023/10 = 102
TCORB = (unsigned char)(val & 0xff); // set
}
}
Issue 0.2 | Page 43 | 07/2002 |