Softuart ist nicht gepuffert. Ein "wait 3" in der Hauptschleife ist also fehl am Platze. Wenn ich Softuart nutze, dann packe ich die Routine in ein Sub und rufe dieses öfter mal aus der Hauptschleife auf. So funktioniert zuverlässig meine per Softuart angebundene Fernbedienung an meinem Radio. Einen wait-Befehl gibt es bei mir so gut wie gar nicht nach Beginn der Hauptschleife. Wenn, dann mal im Millisekundenbereich (waitms / waitus). Alles Andere wird per selbstgestrickter "Tickcount" API aufgerufen. Z.B. DS1820 sagen, er solle die Temperatur aufbereiten, den ticktemp auf 0 und wenn er 100 erreicht hat (mein Tickcount läuft im 10 ms Takt) wird die Temperatur abgeholt. Größere Projekte haben meist noch eine Uhr mit "an Board". Da kann man schön die Sekunden vergleichen.
Lesezeichen