Gast
#555465
Ich bins wieder... ich habe jetzt mit Phillip, welcher auch hier im
Forum aktiv ist, versucht ein Programm zu schreiben, womit man die
Temperatur anzeigen lassen kann.
Problem wie bekannt: Temperatursensor mit 11 Bit digital ausgang mit LPT
auslesen... da man die 11 Bit nicht mit einem Packet verschicken kann,
schickt der Sensor es mit 2 Packeten an den LPT..... -->
Übertragungsprotokoll ist im ZIP Ordner:
"IST_TSic_ZACwire_V2.3%20Digital%20Output_17-Oct-06.pdf"
Datenblatt des Sensors ebenfalls im ZIP Ordner:
ZMD TSic506 Data Sheet V3.6.pdf
************************************************************************
***
Hardware:
Sensor LPT
-------------------------------------
VCC---------- 1k ---------- D0 (PIN2)
DATA OUTPUT ---------------- Select (PIN13);Input Only Pin
GND ------------------------PIN 25 & 24
Zur entstörung 100nF nach Masse geschaltet. Natürlich so nahe am Sensor
wie es geht.
************************************************************************
***
Source Code (Visual Basic); gearbeitet wird mit VB 2005 Express Edition
########################################################################
##
Wir haben mit diesem Code mal ausgeben lassen was für Zustände die
einzelnen Bits haben. So eine Art "Oszilloskop"
Public Declare Function Inp Lib "inpout32.dll" Alias _
"Inp32" (ByVal PortAddress As Short) As Short
Public Declare Sub Out Lib "inpout32.dll" Alias _
"Out32" (ByVal PortAddress As Short, ByVal Value As Short)
Sub Main()
Dim data(2000) As Boolean
Dim i, t As Integer
Call Out(&H378, 1) '// Speisespannung
Do While (Inp(&H379) And &H10) <> 0
'Auf die erste fallende Flanke warten
Loop
t = Environment.TickCount
For i = 0 To 2000
If (Inp(&H379) And &H10) <> 0 Then
data(i) = True
End If
Next
t = Environment.TickCount - t
'Daten ausgeben
Call Console.WriteLine("Die Messung dauerte " & t.ToString &
"ms")
For i = 0 To 2000
If data(i) Then
Call s.Append("-"c)
Else
Call s.Append("_"c)
End If
Next
Call InputBox("bla", "bli", s.ToString)
End Sub
Das Ergebnis befindet sich in der "Zeichnung.txt" Datei.
Wir haben es dann mit per Hand "decodiert"
Wie man in dieser Datei sehen kann, haben wir unser Ergebnis mit der
Formel, die im Datenblatt ist, ausgerechnet und es kam auch ein realer
Temperautrwert heraus.
Das Protokoll des Sensors findet ihr im ZIP Ordner. (Sollte eventuell zu
erst gelesen werden)
Jetzt haben wir versucht ein Programm zu schreiben, womit wir das
decodieren automatisieren können. Das Programm untersucht dabei die
fallenden und steigenden Flanken.
Leider ist in diesem Programm ein Fehler, es stürzt nach der Zeile
"bitnummer -=1" bei der Do While Schleife ab: Index außerhalb des Arrays
etc..." und wir finden es einfach nicht heraus woran es liegt.
Der Source Code ist in der Datei "source.txt"
Alle hier erwähnten Dateien sind in der ZIP Datei "Anhang.zip"
vorhanden, welche im Dateihang zu finden ist.
Ich hoffe ihr versteht den "source.txt".
Danke !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~