Hallo

Wenn es nicht C sein muss - so könnte das in QuicBasic aussehen:

Code:
KEY(1) ON
ON KEY(1) GOSUB abbruch  'Abbruch mit der F1-Taste

tstart = TIMER

DO
 OUT 1020, 1     'schaltet DTR an COM1 ein

 DO
  dt = TIMER - tstart
  IF dt < 0 THEN dt = dt + 86400
 LOOP WHILE dt < 180

 OUT 1020, 0     'schaltet DTR wieder aus

 DO
  dt = TIMER - tstart
  IF dt < 0 THEN dt = dt + 86400
 LOOP WHILE dt < 3420

 tstart = tstart + 3600
 IF tstart >= 86400 THEN tstart = tstart - 86400
LOOP

abbruch:
END
Der TIMER zählt die Sekunden seit Mitternacht. Das mit den 86400 ist um Fehler zu verhindern, wenn das Programm über diese 0:00 Uhr-Grenze läuft. Und bevor gleich wieder Einwände kommen - das läuft auch unter XP (zumindest Pro) einwandfrei ohne irgendwelche Zusatzprogramme.

Gruss
Skilltronic