st860740 發表於 2012-9-6 15:12:50

請教BS2語言上的問題

DEBUG CLS
' -----[ Main Routine ]----------------
DO
GOSUB ADC_Data
GOSUB Calc_Volts
GOSUB Display
LOOP
' -----[ Subroutines ]----------------
ADC_Data:
HIGH CS
LOW CS
LOW CLK
PULSOUT CLK, 210
SHIFTIN DataOutput,CLK,MSBPOST,
RETURN

這是我們程式上的某一段本身是第一次接觸bs2想請問在程式中的PULSOUT CLK, 210 這段話是說
送出第一個時脈 想請問 後面的210
是什麼意思呢 是只送出一個時脈的時間嗎還是有特別意義?懇請解答

mzw2008 發表於 2012-9-6 15:21:57

PULSOUT解析度是2us   
所以 clk,210 就是指送2x210 =420us脈衝寬到pin clk那個腳位

原文
PULSOUT         Output a timed pulse by inverting a pin for
                           some time (resolution of 2µs).

st860740 發表於 2012-9-6 21:32:44

解析度是2us這個是什麼意思呢?
而420us脈衝寬 是說一個時脈的時間嗎?還是?
不太懂脈衝寬的意思

mzw2008 發表於 2012-9-7 01:03:40

送一個維持420us高態的訊號波過去
這是基本電學知識

解析度的意思就是該指令每個單位可以表達 2us
所以送210 = 210*2us =420 us

我覺得你應該先看BS2的規格書
而不是先看範例喔

st860740 發表於 2012-9-7 02:52:19

謝謝版主的回覆跟指導

不知道版主有bs2的規格書的網頁介紹嗎

很多都看到是英文的 不知道怎讀

麻煩版主

mzw2008 發表於 2012-9-7 15:24:58

http://www.playrobot.com/cart/shop.php?id=669&factory=&header=&sub=&Fno=&date_buy=
BS 系列主要只有英文版
若真的不想搞定英文
就找飆機器人吧
他們的套件就有附中文說明

不過個人覺得..想學會程式還是別排斥英文比較好
很多東西用中文翻譯並不OK

st860740 發表於 2012-9-7 16:08:37

嗯嗯 謝謝版主

想在問一下板主

哪這邊的210 只是範例中所設的時間

並沒有其他意義對吧

我可以自己去更改 而得到新的脈衝寬

有上下限的問題嗎?

mzw2008 發表於 2012-9-7 17:26:46

對..就是時間
看不太出來他是要控制什麼

但上下限就要找原廠文件來翻了
我也不曉得上限到哪裡
下限就是2us
上限有可能是 int的極限 65535 x 2us = 130.000ms =0.13秒
或是long 的極限 42億x2us =.... <-- 一般不太可能弄到這麼久
文件應該是一定會找的到

st860740 發表於 2012-9-8 00:24:58

謝謝版主 的回覆

st860740 發表於 2012-9-12 23:11:25

板主 想請問 妳知道 bs2到MATLAB的連接嗎?
想讓他 可以跟PC做連接 而不是只有在BS2的平台

g921002 發表於 2012-9-12 23:53:19

用RS232
利如開啟及設定COM1
rs232drv = serial('COM1');
設定鮑率及資料格式、同為元檢查、停止位元等等
rs232drv.BaudRate = 9600;
rs232drv.DataBits = 8;
rs232drv.Parity = 'none';
rs232drv.StopBits = 1;
rs232drv.FlowControl = 'none';
然後把rs232drv這個當作擋案開啟
fopen(rs232drv);
等待來自BS2的資料
fscanf(rs232drv)

st860740 發表於 2012-9-13 22:43:25

好的   我再去嘗試連接 看看

第一次接觸有很多的不懂 感謝各位回覆

st860740 發表於 2012-9-14 20:16:26

我嘗試去連接 BS2和 MATLAB

使用了上述的方法

出現了下面這段英文
不懂為什麼會這樣
Error using serial/fopen (line 72)
Open failed: Cannot connect to the COM5 port. Possible reasons are another
application is connected to the port or the port does not exist.

我檢查了連線
rs232drv

Serial Port Object : Serial-COM5

Communication Settings
Port: COM5
BaudRate: 19200
Terminator: 'LF'

Communication State
Status: closed
RecordStatus: off

Read/Write State
TransferStatus: idle
BytesAvailable: 0
ValuesReceived: 0
ValuesSent: 0
看不出哪邊有了問題
有人遇過這個狀況嗎

mzw2008 發表於 2012-9-15 11:48:06

Cannot connect to the COM5 port

這句話的意思是...COM5 有人在用了
可能是某個程式
可能是你的程式之前開了沒有CLOSE
甚至可能電腦根本沒有COM5
檢查一下吧

st860740 發表於 2012-9-15 15:16:53

嗯嗯 發現到BS2已經使用了COM5
我再換個試試看
感謝 回覆

st860740 發表於 2012-9-15 22:22:52

想請問一下
我們是把資料經過bs2轉換
然後使用USB跟電腦連接
我們想要和 MATLAB 連接
去讀取bs2轉換後的資料
這樣我們還是需要使用上述的rs232的程式嗎?

st860740 發表於 2012-9-17 16:31:15

再思考
要讓bs2的資料讓MATLAB
能讀取到
是不是還需要做解碼的動作?
頁: [1]
查看完整版本: 請教BS2語言上的問題