Sida 9 av 13

Postat: 4 september 2005, 17:54:04
av AndLi
ändra ditt program så det ger dig alla värden iställer för att konvertera dem till ascii! Ascii är du inte intresserad av alls..

Du ska skicka &hC1 utan "" annars ser VB det som en sträng och skickar 24 bitar.. det vill vi inte!!

Postat: 4 september 2005, 17:56:23
av benring
Det går inte att skicka utan "", då får jag error på det, "Invalid property value" säger den på raden "MSComm1.output= &HC1" om jag kör utan...

Postat: 4 september 2005, 18:00:04
av AndLi
hmm om du gör MSComm1.output = ascii(&hC1) då?

Nu ska det ju tilläggas att jag inte kodat VB sen 2000 typ...

Postat: 4 september 2005, 18:00:04
av MadModder
Då får du skicka ascii 193 då. (Det är tecknet Á). Det är enklare att hålla reda på om du skickar CHR(&HC1). Men sen när du får tillbaks tecken, ska du skriva ut print hex(resultat) för varje tecken du får tillbaks. Ett och ett.

Postat: 4 september 2005, 18:15:55
av benring
YEEEEEEEEEEEEEEESSS!!!

Jag skickade CHR(&HC1) och fick svaret "Í", det svaret blir CD i HEX:)

Så då borde detta funka?

Postat: 4 september 2005, 18:20:08
av MadModder
Ja, det verkar inte bättre :D

Postat: 4 september 2005, 18:21:32
av benring
FY fasen, det va det här jag väntade på, att få reda på HUR jag ska skicka datat:)

Är inte så påläst om alla dessa asc, hex, mm mm:)


TACK så mycket!!

Nu ska jag labba lite med resten:)

/B

Postat: 4 september 2005, 19:49:52
av benring
Ja, nu ska vi se då, jag har följt tabellen på sid 23 i databladet "TEMPERATURE CONVERSION SEQUENCE"

Jag får följande svar:

38
CD
CC
EF
44
76
EC
CD


"38", "CD" & "CC" är korrekt enligt tabell.

"EF" är svaret jag får, enligt tabell står det bara "response", vet alltså inte om detta är rätt.

"44" är korrekt.
"76" är vad jag får som svar på templäsningen, återigen står bara "response" i tabellen

Lika så "EC"

"CD" är korrekt.

Postat: 4 september 2005, 20:54:02
av MadModder
Det står inte vad de där response talar om för något?

Postat: 4 september 2005, 20:56:25
av benring
Nej, det gör inte det, fattar inte varför.

Jag har ju fått värden på dom men om dom är rätt vet jag inte.

Vad jag än tester i tabellerna så får jag rätt svar på allt som det står svar om.

/B

Postat: 4 september 2005, 21:35:28
av benring
Nej nu har jag kört fast igen....

Kan man få lite undsättning?

/B

Postat: 4 september 2005, 21:54:14
av sodjan
Phu, tur att flera "ryckte in" och hjälpte till... :-)

Ett mindre klarläggande...
"RSLink" är en enkel TTL/CMOS (*ej* inverterad) till RS232 konverter.
Det betyder att DS2480B skall vara konfigurerad (via POL pinnen) för "normal" polaritet på TX/RX.

Fint att någon upptäckte ASCII/HEX problemet i VB !
Det skulle jag ha sett i går... :-(

Sedan, notera att det "TEMPERATURE CONVERSION SEQUENCE" exempel som finns i databladet för DS2480B är tänkt att användas med DS1920, alltså inte DS18S20 som du har just nu. Jag har just nu ingen aning om ifall dessa två temp-givare är helt kompatibla, eller hur det ligger till.

Jag skulle plocka fram databladet för DS1920 och studera det tillsammans med exemplet, för att se hur det (eventuellt) skall modifieras för att passa DS18s20.

Postat: 4 september 2005, 22:02:41
av benring
Hej:)

Jo, jag har jämfört exemplet i bladet för 2480´n o med ds18s20´n och det är samma så vitt jag kan se.

Postat: 4 september 2005, 22:18:49
av sodjan
OK.

Jag kollade lite snabbt, och jag kunde inte riktigt känna igen de olika koderna som finns i exemplet i databladet för DS2480B med de som DS18s20 behöver.

T.ex så verkar det som om exemplet i D-B för DS2480B förväntar sig att temp-värdet skickas ut direkt efter "convert" (h'44'). DS18s20 behöver även ett "Read Scratchpad" kommando (h'BE') för att skicka ut något, om jag inte har missförstått allt sammans...

Du kanske ska kolla "DS18S20 OPERATION EXAMPLE 3" på sidan 19 i databladet för DS18s20, och jämföra det med exemplet i databladet för DS2480B. Prova att modifiera enligt databladet för DS18s20, så får vi se vad som händer...

Postat: 4 september 2005, 22:25:47
av benring
Jo, när jag skickat "44" så stannar koden upp lite grann, så den gör nått just då, sen fortsätter koden enl exemplet, därefter kör jag om koden men jag byter "44" mot "BE" i princip så jag kör en read scratchpad.

Så här ser det ut:
Jag har döpt funktionerna till vad dom gör och även vilken hexkod
Hoppas ni förstår dom.

PULLUP_524
RESET_C1
DATAMODE_E1
SKIPROM


COMMANDMODE_E3
ARM_STRONG_PULLUP
TERMINATE_PULSE_EF
DATAMODE_E1
CONVERT_T

WAIT_76 (* Denna får värdet 76 efter den lilla stunden)

COMMANDMODE_E3
DISARM_STRONG_PULLUP
TERMINATE_PULSE_EC
RESET_C1

DATAMODE_E1
SKIPROM
COMMANDMODE_E3
ARM_STRONG_PULLUP
TERMINATE_PULSE_EF
DATAMODE_E1
READ_SCRATCHPAD (*här ska den få temp, den får "BE" som svar, dvs samma som ja skickar)
COMMANDMODE_E3
DISARM_STRONG_PULLUP
TERMINATE_PULSE_BE
RESET_C1

EDIT: Jag har testat att modifiera efter exempel 3.
EDIT2: Tycker det är förbaskat jobbigt att det bara står response i D-B å inte nån hexkod...