program Tesa-sensorlinks-web; 
//AVRco Pascal
// www.team-iwan.de
// Michael Kinz
{ $BOOTRST $00C00}         {Reset Jump to $00C00}
{$NOSHADOW}
{ $W+ Warnings}            {Warnings off}

Device = mega8, VCC = 5;

Import SysTick, ADCPort, TWIslave;

From System Import;

Define
  ProcClock      = 16000000;        {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0064, iData;
  FrameSize      = $0064, iData;
  ADCchans       = [7 , 8] , iData;
  ADCpresc       = 128;
  TWImode        = Transparent;    {HandShake or Transparen}
  TWIbuffer      = 5, iData;       {buffer/packet size}
  TWIaddr        = 10;             {default slave address}

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }


{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
  LEDro[@Portd, 5]     : bit;
  LEDge[@Portd, 6]     : bit;
  LEDgr[@Portd, 7]     : bit;
  register       : byte;
  x              : byte;
  ADCvorn        : word;
  ADC_vorn[@ADCvorn]   : byte;
  ADCseit        : word;
  ADC_seit[@ADCseit]   : byte;
  tempvw : word;
  tempsw : word;
{--------------------------------------------------------------}
{ functions }

procedure InitPorts;
begin
  DDRD:=  %11100000;
end InitPorts;


{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
  InitPorts;


  EnableInts;
  repeat
    register := TWIRXBUFFER[0];
    x := x + 1;
    if (x and %00000001) = 0 then
      LEDro := 0;
    else
      LEDro := 1;
    endif;
    if register  = 0 then
      LEDge := 0;
    else
      LEDge := 1;
    endif;
    if TWIRXBUFFER[1] = 0 then
      LEDgr := 0;
    else
      LEDgr := 1;
    endif;
    mdelay(500);

  until register > 0;
    LEDgr := 0;
    LEDge := 0;
    LEDro := 0;
  loop
    ADCvorn:= GetAdc(7);
     tempvw := adcvorn;
    ADCseit:= GetAdc(6);
    tempsw :=adcseit;
    ADCvorn := ADCvorn div 256;
    ADCseit := ADCseit div 256;
    TWITXBUFFER[0] := ADC_seit;
     ADCseit := tempsw;
    TWITXBUFFER[1] := ADC_seit;

    TWITXBUFFER[2] := ADC_vorn;
       ADCvorn := tempvw;
    TWITXBUFFER[3] := ADC_vorn;
    twitxbuffer[4] := 55;
    If tempsw > 150 then

    LEDgr := 1;
    else
    LEDgr := 0;
    endif;
    if tempvw  > 150 then

    LEDge := 1;
    else
    LEDge := 0;
    endif;
    toggle (LEDro);
    mdelay(100);
  endloop;
end Tesa-sensorlinks-web.
