
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
In der LIB von Basic++ (Basicpp2006) gibt es den Modul DS1631_GENERIC.BAS. Dieser arbeitet nur mit 9-Bit, d.h. mit 0,5°C Auflösung. in der in diesem Modul enthaltenen Funktion DS1631SET_STATUS(ADDR,1) muss man nur die 1 durch eine 13 ersetzen. Damit werden im Configuration-Register des DS1631 die Bits für eine Auflösung von 12 Bits gesetzt. Man erhält dann im HB die Vorkommastellen der Temperatur und im LB die Nachkommastellen. Allerdings muss man das LB noch *10/16 nehmen um eine Dezimalstelle zu bekommen. Achtung: der DS1613_GENERIC.BAS Modul arbeitet nicht einwandfrei. Die darin enthaltene Funktion DS1631WAIT_READY(ADDR) wartet nicht wirklich, so dass die Temperaturanzeige bei 12-Bit Auflösung niemals stimmt. Ich habe die IF-Abfrage geändert auf "if DATA < 128 then goto WT". Nun erhält man immer die richtige Temperaturanzeige. Die "pause 5" ist auch nicht mehr nötig. Viel Spaß beim Ausprobieren |
| Antwort schreiben |