Re: 有人要 AN833 ?
|
||||
---|---|---|---|---|
資深會員
|
參照:
傷腦筋 UDP 通常用於允許資料丟失的通訊,例如收聽即時的網路廣播,丟失一兩個封包也就算了,音樂繼續播,中間偶爾空白斷訊 0.1 秒也沒關係,還可以忍受就好。用 internet 講電話也是這樣,就叫做 VoIP。 你要 login,password 這些動作,還是用 tcp 吧,先用 tcp 連線,login 確認之後,就結束 tcp 通訊,再每個用戶開啟 一個專用的 udp socket,與專用的 port 窗戶,接著就用 udp 高速傳輸資料。udp 傳輸結束後再透過 tcp 通知 server,tcp 的 socket 永遠不關閉。tcp 和 udp 各有特長與缺點,合併使用才對。 VoIP 的通訊就是這樣先用 tcp 做連線請求再用 udp 傳資料的。 Good luck
發表於: 2004/10/19 13:04
|
|||
|
Re: CCSC & ICD2燒錄格式 ???
|
||||
---|---|---|---|---|
資深會員
|
參照:
我用 CCSC 加 ICD2加 MPLAB 6.62,沒問題啊。 參閱\r http://www.ccsinfo.com/forum/viewtopi ... 1b146985348b5a17620f9615d 唯一差異,CCSC 編出來的 HEX 檔的最後多了一行, ;PIC16F877 MPLAB 編出來的 HEX 檔沒這行,把它刪掉試試吧 喔,還有一件事 Options -> File Formats -> 8 bit HEX 你該不會是選錯格式了吧 又,CCS 也有出 ICD-U40,只要 USD$75,也有 C-level debug,單行執行,斷點等功能,試試看吧
發表於: 2004/10/19 10:24
|
|||
|
Re: 有人要 AN833 ?
|
||||
---|---|---|---|---|
資深會員
|
參照:
用 UDP,就算 client 死了 server 也不會知道,就沒有所謂處理的問題啦。server 死了client 也不會知道。 udp 相當於平信,普通信,只有發信人和收信人,郵局把信丟到水裡收信人也不會知道,收信人根本不會知道有人寄信給他。 tcp 比雙掛號信還複雜,收信人沒收到的話,發信人會知道,反之亦然。tcp 簡單流程如下: 1. client 說: server 你在家嗎?(SYN) 2. server 說: 我在家。(SYN-ACK) 3. client 說:data 如下,請查收。 4. server 說: 收到,請繼續。(ACK) 此時若 client 沒收到 server 的 ACK 則在預定時間內會不斷重發階段 3 的 data。 5. client 說: ..... 還有很多變化,有夠複雜的啦。你若選用 tcp 則 AN833 裡的程式就會幫你處理這些流程,以及 timeout 或當機的事件,你可以檢查這些 AN833 所提供的訊息,自己決定後續處理的方式。 UDP 是發了信就不管了,沒有重發的機制。你要自行加上各種查驗機制當然也行,把 udp 改到跟 tcp 一樣複雜也行,呵呵。不過,加上一堆檢查之後,平均的通訊速度就又會降低啦。 先去看看 RFC1180,瞭解一下 tcp 和 udp 的差異再說吧 上 google,查 RFC1180。 隨便去圖書館借本 TCP/IP 的書也行,要看書啦。 或是先拿兩台 PC ,用 VB 加上 Winsock 稿個 UDP 通訊看看, server 能知道 client 當機嗎?最多也只能說,若 N 秒鐘內client 都沒說話,喔,client 大概是死啦。沒別的了。
發表於: 2004/10/18 17:55
|
|||
|
Re: 有人要 AN833 ?
|
||||
---|---|---|---|---|
資深會員
|
參照:
沒人能幫你的!你要的是不可能做到的。 udp 是 connectionless 的通訊方式,沒有所謂的server 和 client 的概念,socket 關了就是關了,任何人都進不去的。
發表於: 2004/10/16 12:31
|
|||
|
Re: 有人要 AN833 ?
|
||||
---|---|---|---|---|
資深會員
|
參照:
書上有 "TCP/IP Lean: Web Servers for Embedded Systems" http://www.iosoft.co.uk/tcplean.php 簡體中文翻譯,一本只要 59 RMB ,呵呵 http://www.china-pub.com/computers/common/info.asp?id=12191 程式適用於 CCS 與 Hi-Tech ,移植到 C18 應該不難
發表於: 2004/10/12 10:02
|
|||
|
Re: 請問哪裡可買到pic18f258.458.的晶片
|
||||
---|---|---|---|---|
資深會員
|
發表於: 2004/10/12 9:57
|
|||
|
Re: timer0計數值不正確...
|
||||
---|---|---|---|---|
資深會員
|
我用的是 18F1320,內建震盪器出廠精度 2%,4320 出廠精度是 1%,2.6.3 節有說明 OSCTUNE 這個 SFR暫存器的用法,5.9.2. 節有說明 OSCTUNE 位址在 0xF9B,F4320 的 PDF 手冊上都有,你的 PDF 可能太舊啦
發表於: 2004/10/8 11:54
|
|||
|
Re: timer0計數值不正確...
|
||||
---|---|---|---|---|
資深會員
|
內建震盪器的精度有多高? 1% 還是 2%?我忘了
內建震盪器誤差修正暫存器裡的數值是多少?你有檢查嗎? 可以把震盪器誤差修正到 0.25% ? ?,也可能搞爛到 10% ?? 忘了! 呵呵,小心喔 改用 CCP 中斷,就不用去算現場保護的延遲,不過,內建震盪器的精度問題還是要考慮的 Best wishes
發表於: 2004/10/8 10:18
|
|||
|
Re: timer0計數值不正確...
|
||||
---|---|---|---|---|
資深會員
|
參照:
10 kHz 等於 100 個指令週期 8.33 kz 等於 120 個指令週期 這 20 個指令週期包含中斷的前處理,現場保護,context saving, 你有做 context saving 嗎?至少總有一個 GOTO 要兩個週期 ...還有,別忘了 BTG LATD,3 也要一個指令週期,載入TMROL也要一個週期 (還是兩個?),自己再仔細算算找找吧 20 個指令週期算是不錯的啦 看看下面這段 CCS 的中斷派遣程序,保護一大堆暫存器,大約要 40 個指令週期才能進入中斷服務程式,呵呵 0018: MOVWF 05 <-- 儲存 W 001A: MOVFF STATUS,06 <-- 儲存 STATUS 001E: MOVF FSR0L,W <-- 儲存 FSR 0020: MOVWF 07 0022: MOVF FSR0H,W 0024: MOVWF 08 0026: MOVF FSR1L,W 0028: MOVWF 09 002A: MOVF FSR1H,W 002C: MOVWF 0A 002E: MOVF FSR2L,W 0030: MOVWF 0B 0032: MOVF FSR2H,W 0034: MOVWF 0C 0036: MOVF PRODL,W 0038: MOVWF 14 003A: MOVF PRODH,W 003C: MOVWF 15 003E: MOVF BSR,W 0040: MOVWF 0D 0042: MOVLB 0 0044: MOVF @00,W 0046: MOVWF 0F 0048: MOVF @01,W 004A: MOVWF 10 004C: MOVF @02,W 004E: MOVWF 11 0050: MOVF @03,W 0052: MOVWF 12 0054: MOVF @04,W 0056: MOVWF 13 0058: BTFSS INTCON.5 005A: GOTO 0064 005E: BTFSC INTCON.2 0060: GOTO 1EDE <--- 到這裡才跳到中斷服務程式去
發表於: 2004/10/8 10:02
|
|||
|