Вверх ↑
Этот топик читают: Гость
Ответов: 139
Рейтинг: 4
#1: 2011-02-08 13:53:41 ЛС | профиль | цитата
Подскажите, пожалуйста, что делаю неправильно. Посылаю команды на термодатчик DS18S20, возвращаются только посланные мною команды, ответа от датчика нет, работает только команда сброса датчика.
code_22464.txt
------------ Дoбавленo в 13.53:
Видно неправильно задал вопрос.
Нужно передать шестнадцатеричное число F0 в com порт, как правильно сделать это?
Я для этого F0 перевожу в строковый вид - 240.
{

Make(delphi)
ver(4.04 build 184)
Add(MainForm,5387327,84,49)

Width=478
Height=519
Point(onClose)
link(onClose,9799537:doWork2,[])
}
Add(DoData,992516,294,238)
{
Data=String(240)
link(onEventData,11639946:doWrite,[(536,244)(536,174)])
}
Add(Memory,15046787,707,98)
{
}
Add(DoData,15123484,294,182)
{
Data=String(9600)
link(onEventData,15046787:doValue,[(507,188)(507,104)])
}
Add(DoData,8534178,294,280)
{
Data=String(8)
link(onEventData,11639946:doRead,[(571,286)(571,181)])
}
Add(COM,11639946,700,147)
{
Port=1
BaudRate=0
link(onRead,16205212:doConvert,[])
link(BaudRate,15046787:Value,[])
}
Add(ListBox,15328551,903,154)
{
Left=15
Top=105
Width=430
Height=360
}
Add(InfoTip,8925886,147,126)
{
Info=#5:Сброс|36:Передача команды F0 на скорости 9600|25:(F0 в строковом виде 240)|
Width=407
Height=200
}
Add(Button,1459811,98,196)
{
Left=15
Top=20
Width=60
Font=[MS Sans Serif,7,0,0,1]
Caption="Сброс"
link(onClick,6245995:doEvent1,[])
}
Add(Hub,6245995,189,196)
{
OutCount=6
link(onEvent1,9799537:doWork3,[(236,202)(236,140)(144,140)])
link(onEvent2,15123484:doData,[(259,209)(259,188)])
link(onEvent3,11639946:doOpen,[(242,216)(242,69)(494,69)(494,153)])
link(onEvent4,11639946:doRXClear,[(515,223)(515,167)])
link(onEvent5,992516:doData,[(259,230)(259,244)])
link(onEvent6,8534178:doData,[(249,237)(249,286)])
}
Add(HubEx,9799537,140,70)
{
link(onEvent,11639946:doClose,[(480,76)(480,160)])
}
Add(Convertor,10193893,378,343)
{
Mode=4
}
Add(Convertor,7028865,679,315)
{
Mode=3
}
Add(Convertor,15234467,840,154)
{
Mode=6
link(onResult,15328551:doAdd,[])
}
Add(Convertor,16205212,770,154)
{
Mode=1
link(onResult,15234467:doConvert,[])
}
карма: 0

0
файлы: 1code_22464.txt [6.4KB] [178]
Гость
Ответов: 17029
Рейтинг: 0
#2: 2011-02-08 13:59:45 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 07:37:46
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#3: 2011-02-08 14:36:28 ЛС | профиль | цитата
85.26.186.159 писал(а):
С com портом видно никто не рабртает

Работают, и многие, но не рботают с такими двайсами
pav писал(а):
Я для этого F0 перевожу в строковый вид - 240

Нет, неправильно, надо перевести сначала -- HextoInt, затем -- IntToChar.
карма: 22

0
Ответов: 5227
Рейтинг: 587
#4: 2011-02-08 15:45:08 ЛС | профиль | цитата
pav, сравни протокол обмена с аналогичной программой через монитор COM порта.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 139
Рейтинг: 4
#5: 2011-02-10 09:59:13 ЛС | профиль | цитата
Спасибо, оба совета помогли. Появился другой вопрос,- после преобразования нужно последовательность из 0 и 1 перевести в HEX. Вот пример


Make(delphi)
ver(4.04 build 184)
Add(MainForm,2953706,21,105)
{
Width=236
Height=309
}
Add(ArrayEnum,5687074,259,126)
{
link(onItem,9801299:doAdd,[])
link(Array,15950967:Array,[])
}
Add(Button,12562957,189,126)
{
Left=20
Top=20
link(onClick,5687074:doEnum,[])
}
Add(ListBox,9801299,336,126)
{
Left=20
Top=60
Width=145
Height=185
}
Add(IntegerArray,15950967,259,70)
{
IntArray=['0'=1,'0'=1,'0'=0,'0'=0,'0'=0,'0'=0,'0'=1,'0'=1]
}

карма: 0

0
файлы: 1code_22485.txt [457B] [154]
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2011-02-10 10:03:35 ЛС | профиль | цитата
Как-то так

code_22486.txt
карма: 22

0
файлы: 1code_22486.txt [1006B] [180]
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)