Ребята помогите! собрал девайс общения по 485 с компом на меге 8. пользую баскомовский терминал. по 232 связывается без проблем, но стоит в разрывах поставить adm485 как всё глохнет. Собственно вопрос в чём. Какой сигнал брать с ком порта компа чтобы терминалка активировала в драйвере rs485 передачу и приём? вот пример моего кода программы, содранного с хэлпа баскома. Я верно ли понял что команда print автоматом активирует передачу на драйвере со стороны контроллера? и будел ли работать комманда input с таким кодом по rs485?
$regfile = "m8def.dat" ' specify the used micro
$crystal = 8000000
$baud = 2400 ' use baud rate
$hwstack = 42 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
$lib "modbus.lbx"
Config Print = Portd.2 , Mode = Set ' use portb.1 for the direction
Rs485dir Alias Portd.2
Config Rs485dir = Output
Rs485dir = 0 ' go to receive mode
' a switch is connected to pinc.0 so activate pull up resistor
' TX RX
' COM0 PD.1 PD.0 monitor
' COM1 PB.3 PB.2 rs485
' PB.1 data direction rs485
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
'Config Com2 = 9600 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0 ' MUST MATCH THE SLAVE
'use OPEN/CLOSE for using the second UART
'Open "COM2:" For Binary As #1
'dimension some variables
Dim B As Byte
Dim W As Word
Dim L As Long
W = &H4567 ' set some values
L = &H12345678
Print "RS-485 MODBUS master"
Do
If Pinc.0 = 0 Then ' test button
Waitms 500 ' delay since we want to send just 1 frame
Print "send request to slave/server" ' to debug terminal
Input "ghjjhjh" , B
' Print #1 , Makemodbus(2 , 3 , 8 , 2); 'slave 2, function 3, start address 8, 2 bytes
' Print #1 , Makemodbus(2 , 6 , 8 , W); 'slave 2, function 6, address 8 , value of w
'Print #1 , Makemodbus(b , 16 , 8 , L); 'send a long
End If
'If Ischarwaiting(#1) <> 0 Then 'did we got something back?
' B = Waitkey(#1) ' yes so get it
Print Hex(b) ; ","; ' print it
'End If
LoopТерминал применяю баскововский. со стороны компа схема сейчас такая http://cxema.my1.ru/publ/teorija/izucha … 33-1-0-729
Отредактировано ra3qwy (2012-03-29 12:14:20)
но ведь инпут сначала строку передаёт а потом принимает?


вот оно и вот