看板 ASM 關於我們 聯絡資訊
※ [本文轉錄自 wayn12342000 信箱] 作者: wayn12342000 (阿菁) 標題: Re: [問題] C++求救!不知道問題在哪裡!! 時間: Sun Jul 19 17:29:01 2009 前文恕刪 : 1.訊號發送的週期 20ms : 2.可旋轉的角度 210 : 3.旋轉角度對應的PWM寬度 自定義的0.5ms~2.5ms 0度 ~180度 : 當訊號1變low時候,訊號2才為high : 訊號2為low時候,訊號3才可為high 我使用過同時調變 P1=11111111; delay(x); 也用過分步調變 P1=00000001; delay(x); ... ... P1=10000000; delay(x); 但用ASM時 不論是同時調變還是分步調變 使用狀況 完全正常 目前各種實驗結果 C語言同時調變 P1.0 P1.1 P1.2 P1.6 P1.7 有正常脈波訊號 其餘不正常 C語言分步調變 P1.0 P1.3 P1.6 P1.7 有正常脈波訊號 其餘不正常 ASM同時調變 P1完全正常 ASM分步調變 P1完全正常 目前想要問 是不是用c寫沒辦法解決這種輸出錯誤狀況 一定要用組語? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.120.102 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.120.102
WolfLord:你要不要直接對PORT PIN做操作看看 sbit PS1=P1^0 07/19 18:11
WolfLord:sbit PS1=P1^1; PS0=0; PS0=1; PS1=0;PS1=1;... 07/19 18:12
WolfLord:另外,比例伺服機需要的是連續脈衝,兩者要交錯信號 07/19 18:13
WolfLord:絕大部分ASM可以做的C一定可以,只是技巧有異 07/19 18:15
typeotoco:port腳拉出來接邏輯分析儀對信號看看 07/19 18:22
wayn12342000:不正常的訊號都是無訊號狀態隨一點點雜訊 07/19 18:47
wayn12342000:我剛剛用V3去看PORT變化 07/19 20:28
wayn12342000:結果發現我整個笨 應該寫成P1=0x01而非P1=00000001 07/19 20:30
wayn12342000:這樣的錯誤導致只有1,4,7腳有變化 2,3,5,6,8沒反應 07/19 20:32
wayn12342000:明天機器人測試完畢發謝文XD感謝各位 07/19 20:33
squall0734:恭喜你找到問題點~~ 07/19 21:48