Robofun 機器人論壇
標題:
[請益]RS-232:BS2接收問題
[打印本頁]
作者:
robot2009
時間:
2010-1-26 18:42
標題:
[請益]RS-232:BS2接收問題
本帖最後由 robot2009 於 2010-1-26 18:43 編輯
以下程式就是要從人機端 送值給bs2 ,bs2收到值後後把sData內所存到的值拿來做LED是否亮起!!
請問要從人機端下值給BS2我在人機端傳給他的值是0x33這樣的
BS2上他sData 到底是接收什值? 原本是想說SERIN 14, 16468, [
DEC
sData] 就值接把收到的值 直接轉成10進制 在拿它來做IF ELSE 的判斷.
ps. bs2上
IF ( sData> 0 )THEN HIGH 15
sData>0 那個0指的是十進制沒錯八?
想請問人機端應該要傳什麼值? 目傳人機端是給它 一個 buffer, Send[0] = 0x33;
而BS2端我下面這樣設定對嗎?!
' {$STAMP BS2}
' {$PBASIC 2.5}
sData VAR Byte
Main:
DO
SERIN 14, 16468, [sData] ' baudmode set for BS2
DEBUG sData
IF ( sData> 0 )THEN
HIGH 15
ELSEIF ( sData<3) THEN
LOW 15
ENDIF
LOOP
END
作者:
miaoichi
時間:
2010-1-27 12:39
本帖最後由 miaoichi 於 2010-1-27 12:43 編輯
人機端傳給他的值是0x33
BS2上他sData 到底是接收什值->就是0x33
你在ap上給他 1->ascii是 33 ->所以硬體也會看到 0x33 -> 你就要用ascii來判斷
或者是你可以去做一個修正 sData = sData -32 -> 這就會是你要的數字了
Main:
DO
SERIN 14, 16468, [sData] ' baudmode set for BS2
DEBUG sData
IF ( sData> 0x33 )THEN
HIGH 15
ELSEIF ( sData<0x36) THEN
LOW 15
ENDIF
LOOP
END
作者:
mzw2008
時間:
2010-1-27 12:45
十進制通常是直接寫
十六進制的話得在前面加0X33
不過basic stamp的十進制前面要不要加dec 開頭,這就得注意一下指令規格了
作者:
robot2009
時間:
2010-1-29 11:46
Q1. 0x33 BS2是不是看不懂阿?!
在人機端這邊 給他 0x33 應該是代表十進制的51八?!
我發現如果這樣弄好像會爆掉...因為ASCII只到7F 十進制的值相對也只到127~
如果我是弄超音波不就最遠能判斷的值只到127公分!!
Q.如果我只是要把電腦端的所偵測到的十進制值,回傳給BS2 然後在BS2端寫死馬達程式,也就是LOW與HIGH 來控制馬達(馬達是用另一塊PIC所寫,因此只要能成功在BS2端都到一個能讓BS2所判斷的值,就可驅動馬達了),BS2能否直接接收?!!
#目前以經可以把SENSOR的值傳給PC 在PC端,如果測到221公分那PC端就是真的收到221公分
不是"2" "2" "1" 這樣分開的.
#我只是想把我所偵測到的值丟回給BS2 因此我用16進制,不就會因此而爆掉?(因為16進制去對應在ASCII上只能對到127)
作者:
mzw2008
時間:
2010-1-29 14:57
Q1 :
那得看你宣告甚麼型別
BS應有型別可以容下超過127的, like int or something...
最適合應是byte陣列
原廠文件應該有, 我的BS已經賣掉, 目前沒辦法幫忙測
Q2:當然可以...只是serialIn /serialOut的問題而已
作者:
miaoichi
時間:
2010-1-30 00:37
十六進位要用 &H01 之類的~~~
作者:
robot2009
時間:
2010-2-2 13:47
本帖最後由 robot2009 於 2010-2-2 13:51 編輯
miaoichi 大大 我剛剛看了一下你說什過去他他就會收什!?
也就是說人機端傳給他的值是150(十進制沒錯八?!)
BS2上他sData 到底是接收什值->就是150摟?
因為我一直不能確定到底他是收到什麼值?
而
我剛剛才發現 我插在搭載板上的RS232 他會接收到超音波抓到的值 在傳給PC端 這時後他是使用了
BS2上面SIN(也就是RS232的Pin3)(傳送端)
那也就是說BS2上的SOUT(也就是BS2的接收端)
那我要接收SERIN ?, 16468, [sData] (問號的地方 腳位要給多少呢?)
我想這應該是我不送資料給BS2的原因八?!
ps.如果單純看 SERIN ?, 16468, [sData] 就是說透過?號角位 把值丟進[sData]
那這樣在bs2內把sData拿來做判斷對八?!
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2