• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (Irobotics)




急需幫忙,想請教清USART Buffer 的方式
#1
初級會員
初級會員


哈囉 大家好,

我想請教一個問題.
我是用 PIC 16F877 跟 CCS

我有三個PIC 用藍芽溝通, 當PIC 1 對 PIC 2 做連結時, 如果連結成功他回傳"ACK" 這個字串.

我的問題是, 當兩個連結成功, PIC 2 會傳一個數字30 給PIC 1
我PIC 1 這邊我是用 Temp=getc() 去收, 然後接收後, PIC 1 會再跟 PIC 3 連結去收另外一組值,然後由PIC3 來的值我用 Temp 2=getc()去收, 我想要知道的是, 怎麼避免去收到的是"ACK"字串,因為這兩組後來要做些運算我是比較. 再發送數值方面的我是用USART 中斷去做,就是PIC 1 有要求,才送

有可能再顯示連結成功的時候,把USART的buffer 清掉,然後再去讀取後來進的值嗎?



在這裡先說謝謝了....

發表於: 2009/5/28 21:55
頂部


Re: 請教高手一個程式/硬體的問題
#2
初級會員
初級會員


參照:

nicecookie 寫道:
參照:

我目前同時使用五個sensors 依序放在PIN_B3~PIN_B7腳上面, 外部電路作該怎麼去做? 請指點一下.


先釐清一下

請問,按照你目前的線路
如果只做一個sensor的話
你實作結果(軟硬體)有甚麼問題嗎


Hello nicecookie 跟 Yiming,

謝謝你們熱心的回覆.

對不起那麼晚回覆,我的網路壞了兩天,今天剛修好.

基本上我做一個 sensor 是沒問題的. 我這幾天也已經可以讓五個sensors 同時使用,不過我用的是笨方法, 就是讓程式重複,連跑五次, 但是這樣的程式時在肥大. 想要精簡, 可是卻找不到方法,

我嚐試了用 for 的指令, 加上 switch 可是 也不管用 因為根本進不去 switch 裡面, 不知道我是不是有什麼邏輯上的錯誤. 他列印出來的都是 default 那各部分 同時練列印出來四個,跟我說 沒有進到 switch

不知道,是怎麼一回事, 或是有什麼其他的方法.

請板上各位高手指點一下. 在這邊先謝謝大家了

下面是我的 for 加上 switch 的 code:

while(1)
{
z=1;

for(x=0;x<4;x++)
{

switch (z)
{

case 1:

......function code........
z++;

break;

case 2:


.....function code........
z++;

break;

case 3:

.....function code........
z++;

break;

case 4:

.....function code.......
break;


default:
printf("%d do not get in switch\n\r",x);

}
}

發表於: 2009/5/12 8:00
頂部


Re: 請教高手一個程式/硬體的問題
#3
初級會員
初級會員


參照:

master 寫道:
5個sensor並不是同時工作,Timer一個就夠了。其實用外部電路作一下變成5個Ultrsonic用input capture抓就好了。


Hello Master,

謝謝你的回應.

我目前同時使用五個sensors 依序放在PIN_B3~PIN_B7腳上面, 外部電路作該怎麼去做? 請指點一下.

謝謝

發表於: 2009/5/10 11:13
頂部


Re: 請教高手一個程式/硬體的問題
#4
初級會員
初級會員


參照:

nicecookie 寫道:
看半天,還是不了解你的sensor是需要怎樣的作動

方便再描述清楚點嗎

基本上PIC18做得到的,PIC16也都可以啦



nicecookie, 謝謝你的回應,

我使用五個 Parallax的 3 pins ultrasonic 測距, 他接收跟發送訊號是同一個pin, 我是利用 timer1 的中斷去計算echo時間,然後計算距離.

我的問題是,我的timer只有三個可是如果我想要同時用五個該sensors 該怎麼做呢?? 之前我看到的那個程式,是對方讓他的sensor依序發送訊號,我想這是必要的,要不然可能會互相干擾,但是,我不知道該怎麼去轉換每個pin腳,就是說第一個sensor他發送接收完訊號之後,程式裡面要該怎麼做去達到,自動跳到下一個pin腳讓他去發送接收訊號呢???



希望各位前輩指點一下........... 謝謝

發表於: 2009/5/9 1:43
頂部


請教高手一個程式/硬體的問題
#5
初級會員
初級會員


哈囉 大家好,

我想請教一下不知道是程式還是硬體的問題.

我使用PIC 16F877. 加上 CCS C compiler 我目前同時使用五個sensors 依序放在PIN_B3~PIN_B7腳上面, 每一個sensor會先發出一個 high並且等待訊號變low, 等訊號一變low之後用 timer1作中斷,每中斷一次之後啟動下一個.

在這樣的情況下,程式該怎麼寫能夠做到PIN腳自動跳下一個呢??

我看過有人寫 int32 pin =PIN_B3

output_high( pin);
output_low(pin);
while(!input(pin))
......function code......

while(input(pin))
.......function code..........

但是問題是,我的compiler 不接受 int16 pin =PIN_B3 這樣的寫法, 也不接受 output_low(pin);

對方使用的是 PIC 18F4520, 這是因為 單晶片 的功能上的限制嗎?????

有沒有辦法讓我的腳位自動換



請各位高手幫幫忙,指點一下

發表於: 2009/5/8 16:38
頂部


想請教PIC 16F877 的 ADC 跟 Sharp IR sensor的問題
#6
初級會員
初級會員


哈囉 大家好,

小弟想請教一個關於ADC的問題.

目前我在使用 Sharp 的 IR sensor.

我去讀ADC Value 然後,去測距. 我發現他的值很不穩定,會變來變去誤差大概是5~6 有些時候同一個值會持續一段時間大概六七秒左右.

我第一個問題是,
有沒有什麼辦法讓他的值很穩定. 因為ADC_VALUE 的值不穩定,我的車子他在避障的時候就會有誤差.

第二個問題是,
我發現Sharp IR sensor 他測到他的有效範圍外的時候,他的值是負值,那這樣我的程式裡面的邏輯他也會判斷錯誤,有沒有什麼辦法改進呢???



在此先謝謝大家閱讀文章,及感謝大家的幫忙了

發表於: 2009/5/4 15:50
頂部


Re: 請教一個關於C code問題
#7
初級會員
初級會員


Hello,

謝謝 Yiming 熱心回答.我不過很遜,組語我看不懂.

GOTO $+1 ;2 CLK 1 US ==>這是什麼意思呀?

NOP ;1 CLK 12.5US==>這是什麼意思呀?

如果你願意 可不可以 幫我解釋一下你寫的組語的議斯呢?

而如果high 12.5 uS low 12.5 uS. 那好像只算到12 uS而已.

後面那個0.5呢???

我用的是 Ping))) Utrasonic sensor 其資料如下:

* 3-pin interface (power, ground, signal)
* 20 mA power consumption
* Narrow acceptance angle
* Simple pulse in / pulse out communication
* Indicator LED shows measurement in progress
* Input Trigger - positive TTL pulse, 2 µs min, 5 µs typ.
* Echo Pulse - positive TTL pulse, 115 µs to 18.5 ms
* Echo Hold-off - 750 µs from fall of Trigger pulse
* Burst Frequency - 40 kHz for 200 µs

datasheet 說你要是給一個 trigger pulse, 他就會回傳一個echo time pulse, 我卻不知道該怎麼抓這一個 echo time pulese.

我在網路上找資料蠻多人也是像版主說的用 PWM 可是我的 PWM 都給 motor 用掉了.所以我在想有沒有其他方式用 C來寫.



請各位高手前輩指點迷津一下.



在這裡先說聲謝謝了

發表於: 2009/4/6 13:44
頂部


Re: 請教一個關於C code問題
#8
初級會員
初級會員


Hello 版主,

謝謝你的回覆.

我目前的狀況是,我的兩個PWM channel 都已經在使用了.
沒辦法空出來做這個動作. 不知道是不是有辦法只用一般的I/O pin 腳去做呢??? 如果可以該怎麼做去量測他的反射時間跟該用什麼抓這訊號呢???

我用的是 PIC 16F877 跟 CCS C compiler.

請各位前輩高手指點一下



在此先說聲謝謝了

發表於: 2009/4/5 10:30
頂部


請教一個關於C code問題
#9
初級會員
初級會員


Hello 大家好,

我想請教一個關於 CCS C 的問題.
我使用的是 PIC 16F877
我最近想要用Ultrasonic sensor來取代我原本的IR sensor 來測距.
可是Ultrasonic sensor好像是需要算每一個pulse的width.

有誰可以指導一下該如何計算嗎?或是該程式該如何寫嗎?



謝謝幫忙



Brian

發表於: 2009/4/4 1:47
頂部


想請教一個C 語言的問題
#10
初級會員
初級會員


哈囉 大家好,

我想請教一個關於C語言的問題. 我使用的是ccs C compiler.我的microcontroller 是 PIC 16F877.

我想請問的是.我有兩個溫度感測器.一個直接接在PIN腳上, 另外一個是由USART 傳進來. 我該怎麼用C去存值這兩個值.我的意思是說,這兩個值會一值變化然後傳進來.我需要去比較這兩個值的大小. 我該怎麼去寫. 沒什麼概念該怎麼著手.我知道用組合語言好像可以指定她們在特定位址去儲存這兩個值,然後定時去讀取就好.可是在C方面我該怎麼做呢???

麻煩指點一下. 十分感激



謝謝了

發表於: 2009/1/17 14:11
頂部



(1) 2 3 4 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------