Turbo c程式要怎麼改成BCB |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
這Turbo c程式要怎麼改成BCB呢?
<textarea class="cpp" rows="10" cols="60" name="code"> void main() { outport (Base 0,0x09); outport (Base 1,0x09); outport (Base 3,0x00); outport (Base 4,0x00); outport (Base 6,0x01); outport (Base 7,0x01); outport (Base 8,0x00); outport (Base 9,0x00); ts=clock()/CLK_TCK; tf=ts; while (!kbhit()) { x1=inport (Base 0); x2=inport (Base 1); x3=inport (Base 2); x4=inport (Base 4); x5=inport (Base 5); x6=inport (Base 6); b_1=((float)(x1) (float)(x2)*256.0 (float)(x3)*65536)-8388608.0; a_1=((float)(x4) (float)(x5)*256 (float)(x6)*65536)-8388608; x1=inport (Base 0); x2=inport (Base 1); x3=inport (Base 2); x4=inport (Base 4); x5=inport (Base 5); x6=inport (Base 6); b=((float)(x1) (float)(x2)*256.0 (float)(x3)*65536)-8388608.0; a=((float)(x4) (float)(x5)*256 (float)(x6)*65536)-8388608; if (abs(b-b_1)>100) { x1=inport (Base 0); x2=inport (Base 1); x3=inport (Base 2); b=((float)x1 (float)(x2)*256.0 (float)(x3)*65536)-8388608.0; } bb=(b/83.333)*pi/180; if(abs(a-a_1)>100) { x4=inport (Base 4); x5=inport (Base 5); x6=inport (Base 6); a=((float)x4 (float)(x5)*256 (float)(x6)*65536)-8388608; } aa=(a/83.333 90)*pi/180; td=clock()/CLK_TCK-tf; ppp(); dt=td-ts; if (dt>=0.1) { w1=(aa-aa_1)/dt; w2=(bb-bb_1)/dt; aa_1=aa; bb_1=bb; ts=td; } e1=isi-aa; e_1=e_1 e1*(td-td_1); s1=oe1 lan*e1; DA1=(e1*p1 i1*e_1-d11*w1) 20*(abs(s1)/s1); //軸1 PID de1=(e1-oe1)/dt; oe1=e1; e2=osi-bb; e_2=e_2 e2*(td-td_1); s2=oe2 lan*e2; DA2=(e2*p2 i2*e_2-d22*w2) 20*(abs(s2)/s2); //軸2 PID de2=(e2-oe2)/dt; oe2=e2; td_1=td; daout1(); daout2(); gotoxy(3,10); } DA1=0; DA2=0; daout1(); daout2(); fclose(fp0); } void daout1() { if (DA1>3) { DA1=3; } if (DA1<-3) { DA1=-3; } if (abs(aa)>2.618) { DA1=0; } d1=409.6*(DA1 5); d2=d1&0xf00; d2=d2>>8; d3=d1&0xff; outport (base 0,d2); outport (base 1,d3); } ........................ ........... </textarea> |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
為何一定要用 BCB ? 它比較合適寫 MS-Windows 下有視窗的程式
您要的東西比較合在 DOS 下用 Turbo C 一類開發工具做 不然研究 DirectX 看看 http://www.microsoft.com/downloads/details.aspx?familyid=402111C4-6478-46C1-BBD9-1BF9FCCE52F4&displaylang=zh-tw
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
DOS 時代, 程式可以直接存取裝置 I/O
缺點是程式沒寫好, 會讓作業系統當掉 為了避免這種情況, MS-Windows 時代的保護模式 就禁止直接存取 裝置的 I/O 但是對於一些 多媒體, Game 等, 直接存取 顯示卡 記憶體速度會比較快 不能直接存取會讓速度下降很多 後來 微軟 採取折衷方案, 由 微軟 提供一些直接存取 裝置 I/O 的 高速 API 也就是 Microsoft DirectX , 提供比較高速 且 安全的 API 給程式設計師用 ===================引 用 文 章=================== DirectX 是做什麼的?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
看看這篇,用BCB6寫COM通訊程式,不知是否有用
http://www.legalsoft.com.cn/articles/show.asp?id=563 聯高軟體:在CB6下基於api函數編寫串口通信程式簡介
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
您的範例中的 outport 和 inport 就是 Library 中的 function , 範例中已經使用它們了 1. 您要先去查那張 D/A card, encoder card 是否有提供 API 或 LIB 去翻閱手冊, 去電子檔案查, 一般人不會有這種東西, 您要自己去找出來 2. 如果有, 哪個 function 是您需要使用的 例如您的範例中使用到了 outport 和 inport , 這是給 Turbo C 用的 function 你要自己去確認該 D/A Card 是否有提供給 Windows 用的 API 3. 然後了解 function 的語法 例如 outport 的語法是 outport (位址, 輸出值); 實際使用可能是 outport (Base 0,0x09);
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
mp_0223
一般會員 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
daniel__lee
高階會員 發表:18 回覆:124 積分:113 註冊:2002-11-10 發送簡訊給我 |
Turbo C的程式一定可以改寫成BCB的
不過方法有很多看你要怎麼去改 第一種最簡單的 因為你的範例用了inport() & outport()的指令這些指令在bcb3.0板以後就被拿掉了,原因是window要保護i/o.......... 但是還是有例外除了nt架構的os還是可以鑽一下他的漏洞,如果你用win9x 的os你可把output的碼以asm的放式寫入就可以用了.....不清楚爬一下文 這問題幾年前 在這裡有過討論 再來就是去外掛一些.DLL 或winio之類的東西,就沒有os的限制了 本論壇也有許多資料 或者去找你的card的製造商應該也有提供for bcb的lib 或dll可以讓你使用
------
~ 勿在浮沙上面築高塔 ~ |
m7777
一般會員 發表:0 回覆:1 積分:0 註冊:2003-09-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |