Igor_B
20.06.2004, 19:51
Hi ,
Brauch dringend hilfe ....
Und zwar gehts um das 10 bit datenerfassungssystem von conrad
mit dem ltc 1090 chip . Vielleicht kennt das wer von euch !
Also ich hab folgendes problem - ich hab den source code zum ansprechen des 10 bit datenerfassungssystems , nur ich brauch den code in c .
So nun zum code , zum teil kapier ich ja was passiert nur
bei den ports häng ich . Ich weis nicht was ich an den welchen port ausgeben muss um zb RTS auf null zu setzen , oder DTR bzw CTS .
Vielleicht kann mir ja da wer helfen .
Danke schon mal
lg
Igor_b
DECLARE FUNCTION GetMesswert! (Kanal!, Durchlauf!)
'Bildschirm vorbereiten
CLS
LOCATE 25, 13: PRINT "mV";
LOCATE , 35: PRINT "0 1 2 3 4 5 Volt";
LOCATE 1, 1
'Beginn der Endlosschleife
DO
'Meáwertabfrage vom AD-Wandler
MilliVolt = GetMesswert(1, 1)
'Spannungswert auf den Bildschirm schreiben
LOCATE , 10: PRINT USING "#####"; MilliVolt;
'Spannung als Leuchtpunkt ausgeben
LOCATE , 35 + (MilliVolt / 125): PRINT "Ü"
'Wiederhole die Messungen bis eine Taste gedrckt wird
LOOP WHILE INKEY$ = ""
'Programm beenden
END
FUNCTION GetMesswert (Kanal, Durchlauf)
DIM AdressePort(4)
AdressePort(1) = &H3F8: AdressePort(2) = &H2F8
AdressePort(3) = &H3E8: AdressePort(4) = &H2E8
Port = 1
Referenz! = 5#
PC.Speed& = 0
MaxBitWert = 2048
SELECT CASE Kanal
CASE 1
Kanal$ = "100011101111"
CASE 2
Kanal$ = "110011101111"
CASE 3
Kanal$ = "100111101111"
CASE 4
Kanal$ = "110111101111"
CASE 5
Kanal$ = "101011101111"
CASE 6
Kanal$ = "111011101111"
CASE 7
Kanal$ = "101111101111"
CASE 8
Kanal$ = "111111101111"
END SELECT
Messaddition& = 0
FOR Messung = 0 TO Durchlauf
Messchritt = 0
BitWert = MaxBitWert
FOR i = 1 TO 12
OUT AdressePort(Port) + 4, (&HFE AND INP(AdressePort(Port) + 4))
IF MID$(Kanal$, i, 1) = "0" THEN
OUT AdressePort(Port) + 4, (&HFD AND INP(AdressePort(Port) + 4))
ELSE
OUT AdressePort(Port) + 4, (&H2 OR INP(AdressePort(Port) + 4))
END IF
OUT AdressePort(Port) + 4, (&H1 OR INP(AdressePort(Port) + 4))
IF (INP(AdressePort(Port) + 6) AND 16) = 16 THEN
ELSE
Messchritt = Messchritt + BitWert
END IF
BitWert = BitWert / 2
NEXT i
OUT AdressePort(Port) + 4, (&HFD AND INP(AdressePort(Port) + 4))
OUT AdressePort(Port) + 4, (&H2 OR INP(AdressePort(Port) + 4))
FOR Warten& = 1 TO PC.Speed&: NEXT Warten&
IF Messung > 0 THEN
Messaddition& = Messaddition& + Messchritt
END IF
NEXT Messung
Messchritt = (Messaddition& / Durchlauf)
GetMesswert = Messchritt / 4.095 * Referenz!
END FUNCTION
Brauch dringend hilfe ....
Und zwar gehts um das 10 bit datenerfassungssystem von conrad
mit dem ltc 1090 chip . Vielleicht kennt das wer von euch !
Also ich hab folgendes problem - ich hab den source code zum ansprechen des 10 bit datenerfassungssystems , nur ich brauch den code in c .
So nun zum code , zum teil kapier ich ja was passiert nur
bei den ports häng ich . Ich weis nicht was ich an den welchen port ausgeben muss um zb RTS auf null zu setzen , oder DTR bzw CTS .
Vielleicht kann mir ja da wer helfen .
Danke schon mal
lg
Igor_b
DECLARE FUNCTION GetMesswert! (Kanal!, Durchlauf!)
'Bildschirm vorbereiten
CLS
LOCATE 25, 13: PRINT "mV";
LOCATE , 35: PRINT "0 1 2 3 4 5 Volt";
LOCATE 1, 1
'Beginn der Endlosschleife
DO
'Meáwertabfrage vom AD-Wandler
MilliVolt = GetMesswert(1, 1)
'Spannungswert auf den Bildschirm schreiben
LOCATE , 10: PRINT USING "#####"; MilliVolt;
'Spannung als Leuchtpunkt ausgeben
LOCATE , 35 + (MilliVolt / 125): PRINT "Ü"
'Wiederhole die Messungen bis eine Taste gedrckt wird
LOOP WHILE INKEY$ = ""
'Programm beenden
END
FUNCTION GetMesswert (Kanal, Durchlauf)
DIM AdressePort(4)
AdressePort(1) = &H3F8: AdressePort(2) = &H2F8
AdressePort(3) = &H3E8: AdressePort(4) = &H2E8
Port = 1
Referenz! = 5#
PC.Speed& = 0
MaxBitWert = 2048
SELECT CASE Kanal
CASE 1
Kanal$ = "100011101111"
CASE 2
Kanal$ = "110011101111"
CASE 3
Kanal$ = "100111101111"
CASE 4
Kanal$ = "110111101111"
CASE 5
Kanal$ = "101011101111"
CASE 6
Kanal$ = "111011101111"
CASE 7
Kanal$ = "101111101111"
CASE 8
Kanal$ = "111111101111"
END SELECT
Messaddition& = 0
FOR Messung = 0 TO Durchlauf
Messchritt = 0
BitWert = MaxBitWert
FOR i = 1 TO 12
OUT AdressePort(Port) + 4, (&HFE AND INP(AdressePort(Port) + 4))
IF MID$(Kanal$, i, 1) = "0" THEN
OUT AdressePort(Port) + 4, (&HFD AND INP(AdressePort(Port) + 4))
ELSE
OUT AdressePort(Port) + 4, (&H2 OR INP(AdressePort(Port) + 4))
END IF
OUT AdressePort(Port) + 4, (&H1 OR INP(AdressePort(Port) + 4))
IF (INP(AdressePort(Port) + 6) AND 16) = 16 THEN
ELSE
Messchritt = Messchritt + BitWert
END IF
BitWert = BitWert / 2
NEXT i
OUT AdressePort(Port) + 4, (&HFD AND INP(AdressePort(Port) + 4))
OUT AdressePort(Port) + 4, (&H2 OR INP(AdressePort(Port) + 4))
FOR Warten& = 1 TO PC.Speed&: NEXT Warten&
IF Messung > 0 THEN
Messaddition& = Messaddition& + Messchritt
END IF
NEXT Messung
Messchritt = (Messaddition& / Durchlauf)
GetMesswert = Messchritt / 4.095 * Referenz!
END FUNCTION