PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TLC 549 Programmierung (AD-Wandler)



Profdok
13.11.2007, 21:20
Hallo alle zusammen,
ich habe da so ein Problem, das ich seit Tagen nicht lösen kann. Ich habe diese Schatung gebaut
http://www.franksteinberg.de/e-tlc549.htm
und dazu dieses Programm geschrieben.


Module Module1
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)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim BA As Double
Sub Main()
Dim WDat As Integer
Dim i As Integer
Dim Volt As Double
Do
Out(890, 2) 'CS an
Sleep(10)
Out(890, 0) 'CS aus
Sleep(10)
WDat = 0
Volt = 0
For i = 7 To 0 Step -1
If (Inp(889) And 8) Then
WDat = WDat + 2 ^ i
End If
Out(890, 4) 'Clock an
Sleep(10)
Out(890, 0) 'Clock aus
Next
Sleep(30)
Volt = 5.26 / 256 * WDat
MsgBox(Volt)
WDat = 0
Volt = 0
Loop
End Sub

End Module

Ich bin seit fast 4 Tagen da dran, aber ich bekomme das nicht hin, eine Spannung zu messen. Am Computer wird immer ein Wert von 5,3 Volt angezeit. Das ist nähmlich die Eingangsspannung. An der Platine kann es ja nihct liegen, das habe ich oft überpfrüft und es sind ja nur 2-3 Teile. Die Versorgungsspannung kommt extern von einem Computernetzteil. Meiner Meinung könnte es an dem Programm liegen, aber so genau habe ich das im Interenet gesehen. Zusätzlich habe ich ein Buch, wo die Programmierung ähnlich ist. (aber auf der seriellen Schnittstelle)
Habt ihr vielleicht keinen Fehler entdeckt ?

Gruss
Yusuf

Profdok
14.11.2007, 10:57
Hat noch niemand mit diesem IC gearbeitet?

robodriver
14.11.2007, 11:04
Bist du dir sicher das die Schaltung am Port 890 hängt?

Schau bitte mal in der Hardwarekonfiguration deines Rechners nach welche Portnummer dein LPT hat, wo die Schaltung dran hängt

robodriver
14.11.2007, 11:07
Ich sehe auch gerade noch etwas:
du schreibst "Out(890, 0)" und später wiederum "(Inp(889) And 8)"
Also du müsstest dich schon einigen an welcher Portnummer deine Schaltung angeschlossen ist: 890 oder 889

Profdok
14.11.2007, 11:29
Hi,
das hängt am Port 888. Das Out ist ja an Pin 14 und 16. Diese Pins sind Control-Ports. Daher muss man bei diesen 2 dazu zählen. Und bei Pin 15 muss ich 1 zuzählen, weil das ein Statusport ist.

//Register LPT1 Dezimal
// Register (Basis-Adresse + 0) 0x378 888
// Status Register (Basis-Adresse + 1) 0x379 889
// Control Register (Basis-Adresse + 2) 0x37A 890

Gruss Yusuf

Profdok
14.11.2007, 15:14
Ich nehme die Versorgungsspannung jetzt von dem Parallelen Port. Dazu habe ich einen Kondensator daschwichen geschaltet. Um eine Spannung messen zu können habe ich eine 1,5V Batterie benutzt.
Nun bekomme ich auch Messwerte, nur bei jeder Messung bekomme ich komplatt anderer Werte. Auch ohne Batterie bekomme ich wilde Messwerte zwischen 0- 3,6 V. 3,6 V ist die Versorgungsspannung.
Ich habe mit so einem Programm auch gesehen, dass dieser IC Daten an den PIN 15 am Parallelport gibt.
Entweder lese ich die Daten falsch oder es liegt ein anderer Fehler vor. Wisst ihr vielleicht, wo der Fehler sein kann ?

Yossarian
14.11.2007, 16:48
Hallo
Da die Versorgung über eine Datenleitung erfolgt, mußt Du dafür sorgen, daß diese Datenleitung stabil auf high bleibt.
Aus einem Ausgang 40-60mA ziehen zu können halte ich für ein Gerücht.
20% davon sind eher realistisch, dieses ist aber wieder stark vom Mainboard abhängig.
Mit freundlichen Grüßen
Benno