So, ich habe die Hardware soweit am laufen...

Zwei CNY70 auf den ADC gelegt. Bei silberner Scheibe habe ich einen Wert zwischen 0 - 7, bei der roten markierung habe ich einen wert >15 .

Code:
'Emon.bas
'Energiemonitor für Strom, Gas und Wasser
'Sensor für Strom: 2 CNY70 am AD-Wandler
'Sensor für Gas und Wasser  Kontakte an Portpins

'v0.1 16.01.2010 - Test der Analogen Eingänge, Debug über RS232


$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600


Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
Config Lcdbus = 4

Config Timer1 = Timer , Prescale = 256    'Konfiguriere Timer1
Enable Timer1                             'schalte den Timer1 ein
On Timer1 Isr_von_timer1                  'verzweige bei Timer1 überlauf zu   Isr_von_Timer1
Enable Interrupts
Timer1 = 34285                            'Timer1 soll schon von 34285 wegzählen


Config Adc = Single , Prescaler = Auto
Start Adc


Dim W1 As Word , W2 As Word , Diff As Word , Channel As Byte , Mark As Bit , Time As Word , Count As Word , Count2 As Word,
Dim Flanke1 As Bit , Flanke2 As Bit , Flanke3 As Bit
Dim Sek As Word , Sek_alt As Word , Sek_delta As Word



Channel = 0                                                 'Startkanal für ADC

Do
  W1 = Getadc(0)
  W2 = Getadc(1)
  Diff = W2 - W1
  Print "Kanal1: " ; W1 ; "Kanal2: " ; W2 ; "Differenz: " ; Diff
  Cls
  Locate 1 , 1
  Lcd "Diff.:" ; Diff

  If Diff > 15 Then
      Mark = 1
      Locate 2 , 1
      Lcd "---OOO---"
      Else
      Mark = 0
  End If

  If Mark = 0 Then

   Sek = Count
   Elseif Mark = 1 Then
      Sek_alt = Count
      Sek_delta = Sek - Sek_alt
      End If

  Locate 2 , 10
  Lcd "sek: " ; Sek_delta


  Waitms 100
Loop
End


Isr_von_timer1:                            'ISR von Timer1
Timer1 = 34285                             'Timer1 soll wieder von 34285 wegzählen
Incr Count
Toggle Flanke1
Return
Hier mal der Code bis jetzt. Was ich nicht ganz verstehe ist wie ich die Zeit messe zwischen dem Erscheinen der roten Markierung.

Ich müsste wenn die Markierung kommt den Zählerstand speichern, und wenn die Markierung erneut erscheint die Differenz zum Aktuellen Zählerstand ermitteln und Wieder neu starten...

Aber ich weiss nicht wie?

Irgenwas mit flankenerkennung, hat jemand einen Tip?