[/b]Zitat von hardware.bas
[/b]Zitat von hardware.bas
Ok, vielen Dank für Deine Mühe, for-ro. Beim Kennen der logischen
Hintergründe wird das für mich in wenigen Stunden sicher nunmehr
lösbar sein. Auf Grund des geforderten Zeitschemas werden alle
3 Sensoren hintereinander angestossen, danach gemeinsam einmalig mit
waitms 512 gewartet und danach hintereinander ausgelesen.
Wenn obiges funktioniert, müsste dann auch das gehen. VG Micha
Wenn du die Schleife in ein größeres Programm eingebunden hast, wäre es noch sinnvoll, das Waitms 512 wegzubekommen.
Dazu würde ich den Ablauf so ändern:
Im Initialisierungsbereich deines Programm stößt du einmalig für alle Sensoren die Konvertierung an
In deiner Main wirst du ja in regelmäßigen Abständen die Temperatur Ausgabe durchlaufen. Die geht dann so:
[list=1]For x = 5 to 7
Next[/list
- 1wreset Pind , X
1wwrite &HCC , 1 ,pind , x
1wwrite &HBE , 1 , Pind , X 'Werte auslesen
S_p(1) = 1wread(9 , Pind , X)
'"Array auslesen und drucken ok"
1wreset Pind , X
1wwrite &HCC , 1 , Pind , X
1wwrite &H44 , 1 ,pind , x 'nächste Konvertierung starten
:8f71c15875]
for-ro, vielen Dank, jetzt haben sich unsere Beiträge überschnitten.
Also, nochmals vielen Dank, seit einigen StunDen läuft es genauso,
wie beabsichtigt. Das Anstossen mit einer 3maligen For-Next-Schleife,
danach die Waitms-Anweisung (meines Wissens braucht der DS1820
einen kurzen Moment, stört sicher nicht und ist jetzt im Impulsfahrplan
integriert) und danach das Einzelnauslesen mit der Variablenzuweisung.
Wie erwähnt.... es klappt jetzt alles vorzuglich, war eine PRIMA HILFE!
Schreibe hier von der Baustelle. VG Micha
Dein Ablauf:
---------------
Konvertieren
Waitms 512
Auslesen
Ausgeben
---------------
andere Sachen, Wiederaufruf z.B. nach 1. min
---------------
Konvertieren
Waitms 512
Auslesen
Ausgeben
---------------
andere Sachen, Wiederaufruf z.B. nach 1. min
---------------
Konvertieren
Waitms 512
Auslesen
Ausgeben
---------------
Bei mir
---------------
Auslesen
Ausgeben
Konvertieren
---------------
andere Sachen, Wiederaufruf z.B. nach 1. min
---------------
Auslesen
Ausgeben
Konvertieren
---------------
andere Sachen, Wiederaufruf z.B. nach 1. min
---------------
Auslesen
Ausgeben
Konvertieren
---------------
andere Sachen, Wiederaufruf z.B. nach 1. min
Bei dir sind die 512ms notwendig, damit der Sensor die Konvertierung fertigstellen kann.
Bei mir wird die Konvertierung während der Zeit durchgeführt, in der andere Sachen gemacht werden. Da dies in der Regel länger als 512ms dauert, sind die Sensoren auch fertig. Ergebnis: Wartezeit vermieden.
Ich würde das immer auf diese Weise machen.
Gute Idee! Habe schon was gefunden, was in dieser Wartezeit den AVR
beschäftigt. VG Micha
Lesezeichen