An einem ähnlichen Problem bin ich im Moment
auch dran. Ich messe 2 Temperaturen mit 2 Dallas
Sensoren (1820) und schicke diese über die RS232.

Ich arbeite zwar nicht mit Excel sondern mit PureBasic
(www.PureBasic.de).

Wenn ich jetzt auf PC-Seite die RS232 immer polle,
friert mir meine GUI (Benutzeroberfläche) ein und es
kommen auch öfter nur Textfragmente an. Habs mal
in eine Textdatei geschrieben. Da werde ich um einen
Timer oder besser noch einen Thread nicht drum herum
kommen.

Wäre es besser, wenn ich den UART - Interrupt benutze,
um vom PC (zum Bsp. ein M senden) die Messungen
anzustoßen bzw. zu beenden ?

Code:
' Beispiel für das myAVR Board 1 & 2 mit LCD und 1wire Temperatursensoren an Pin 5 von Port C
' Zwei 1wire Temperatursensoren DS1820
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600

' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von Bascom durch Software realisiert
Config 1wire = Portc.5

Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim I As Byte
Dim Nr As Byte
Dim Sc(9) As Byte
Dim T As Integer
Dim T1 As Integer
Dim T2 As String * 4
Dim Ts As Integer
Dim T3 As String * 15

' Ersten angeschlossenen DS1820 finden und Adresse auslesen
Dsid1(1) = 1wsearchfirst()
Waitms 500
 ' Zweiten DS1820 suchen und Adresse auslesen
Dsid2(1) = 1wsearchnext()
Waitms 500

'Thermostat - Ts = Schalttemperatur x 10
Ts = 2500

Do
 ' Alle angeschlossenen DS1820 zum Messen veranlassen
 1wreset
 1wwrite &HCC
 1wwrite &H44
 Waitus 200
 ' Den ersten Sensor auswählen
 1wverify Dsid1(1)
 ' Kommando READ SCRATCHPAD
 1wwrite &HBE
 Sc(1) = 1wread(9)
 If Sc(9) = Crc8(sc(1) , 8) Then
  ' Genauere Temperaturberechnung auf 0,1 °C
  I = Sc(1) And 1
  If I = 1 Then Decr Sc(1)
  T = Makeint(sc(1) , Sc(2))
  T = T * 50
  T = T - 25
  T1 = Sc(8) - Sc(7)
  T1 = T1 * 100
  T1 = T1 / Sc(8)
  T = T + T1
  T = T / 10
  T2 = Str(t)
  ' Temperatur in 0,1 Grad Schritten ausgeben
  T3 = Format(t2 , "+00.0") + " C"
 End If
 Waitms 500
 ' Ausgabe alle 0,5 Sekunden
 ' Den zweiten Sensor auswählen
 1wverify Dsid2(1)
 ' Kommando READ SCRATCHPAD
 1wwrite &HBE
 Sc(1) = 1wread(9)
 If Sc(9) = Crc8(sc(1) , 8) Then
  ' Genauere Temperaturberechnung auf 0,1 °C
  I = Sc(1) And 1
  If I = 1 Then Decr Sc(1)
  T = Makeint(sc(1) , Sc(2))
  T = T * 50
  T = T - 25
  T1 = Sc(8) - Sc(7)
  T1 = T1 * 100
  T1 = T1 / Sc(8)
  T = T + T1
  T = T / 10
  T2 = Str(t)
  ' Temperatur in 0,1 Grad Schritten ausgeben
  T3 = T3 + "|" + Format(t2 , "+00.0") + " C" + Chr(0)
  Print T3
 End If
 ' Ausgabe alle 0,5 Sekunden
 Waitms 500
Loop
End