пробую вот так
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 57600
$framesize = 16
$hwstack = 24
$swstack = 16
Dim Comchar As Byte 'ïðèíèìàåìûé ñèìâîë
Dim Buff As String * 16 'ïåðåìåííàÿ áóôåð
Dim Bcount As Byte 'ñ÷åò÷èê ïðèíÿòûõ áàéòîâ
Dim Flagbuf As Bit
Dim Aws As Byte
Config Portb = Output 'ïåðåìåííàÿ Ôëàã êîíöà ïðèåìà ñîîáùåíèÿ
'Declare Sub Tobin(byval Incom As String * 16)
On Urxc Getchar 'ïåðåîïðåäåëÿåì ïðåðûâàíèå íà ïåðåäà÷ó ïî usart
Enable Urxc 'âêëþ÷àåì ïðåðûâàíèå uart
Enable Interrupts
Reset Flagbuf
'Îñíîâíîé öèêë
Do
If Flagbuf = 1 Then
Disable Serial
Print Buff 'îòïðàâëÿåì ïðèíÿòîå ñîîáùåíèå
Print Bcount
Aws = Val(buff) + 1
Shiftout Portb.2 , Portb.3 , Aws , 1 'îòïðàâëÿåì äàííûå â ðåãèñòð
Pulseout Portb , 0 , 5
Waitms 500
Buff = "" 'ñáðàñûâàåì áóôåð
Reset Flagbuf 'ñáðàñûâàåì ôëàã ïðèåìà ñîîáùåíèÿ
Enable Serial
End If
Loop
'end program
Getchar:
Comchar = Inkey() 'ïðèíèìàåì 1 ñèìâîë
If Comchar <> 13 Then 'ïðîâåðÿåì ÿâëÿåòñÿ ëè ýòîò ñèìâîë Enter'îì
Buff = Buff + Chr(comchar) 'åñëè íåò, òî äîáàâëÿåì åãî â áóôåð
Incr Bcount 'óâåëè÷èâàåì íà 1 ñ÷åò÷èê áàéòîâ
Else
Flagbuf = 1 'åñëè ñèìâîë îêàçàëñÿ "Enter", òîãäà ôëàã óñòàíàâëèâàåì â 1. "Enter"- êîíåö ñîîáùåíèÿ
End If
ReturnЗадача - получить число по уарт и отправить его в сдвиговый регистр. Однако ничего не получается. Подскажите где ошибки. Может быть у кого-то есть работающий код.
Отредактировано inionis (2011-11-28 08:53:28)
