Charles又教我一招啦
紀錄一下
PWM的作用
軟體控制GPIO
負責控制High and Low
3v3 代表 High
0v 代表 Low
如果你需要讓硬體線路的某個部份維持
1v3 or 0.7v or 2.9v ...等等
該怎麼辦
這個時候
你就需要PWM
此時
需要知道一個專有名詞 叫做 duty cycle
其實它就代表一個週期
這個週期內
active的時期 就是所謂的 duty
透過設定 duty的時間
就可以控制線路需要到多少v
2008年6月26日 星期四
2008年6月24日 星期二
open com port
Handle hcom = CreateFile(
comname, //名稱 like COM1 or COM2
GENERIC_READ | GENERIC_WRITE, //設定讀寫的權力
FILE_SHARE_READ| FILE_SHARE_WRITE,
0, // [in] Ignored; set to NULL.
OPEN_EXISTING, //設定檔案的狀態來決定要做什麼 此參數指的是 檔案不存在 function就會fail
0,
0 //[in] Ignored;
);
create完之後
可以檢查這個Handle是否有等於 INVALID_HANDLE_VALUE
如果等於 就是開啟失敗
接下來透過
GetCommState來得到目前這個device的 communication status (or called control settings)
以下是定義
BOOL GetCommState( HANDLE hFile, LPDCB lpDCB );
DCB
This structure defines the control setting for a serial communications device.
裡面有幾個參數
跟
RTS_CONTROL_DISABLE
RTS_CONTROL_ENABLE
RTS_CONTROL_HANDSHAKE
RTS_CONTROL_TOGGLE
如果不做 flow control
設定成 RTS_CONTROL_DISABLE 應該就可以
在用SetCommState設定
then SetCommState
comname, //名稱 like COM1 or COM2
GENERIC_READ | GENERIC_WRITE, //設定讀寫的權力
FILE_SHARE_READ| FILE_SHARE_WRITE,
0, // [in] Ignored; set to NULL.
OPEN_EXISTING, //設定檔案的狀態來決定要做什麼 此參數指的是 檔案不存在 function就會fail
0,
0 //[in] Ignored;
);
create完之後
可以檢查這個Handle是否有等於 INVALID_HANDLE_VALUE
如果等於 就是開啟失敗
接下來透過
GetCommState來得到目前這個device的 communication status (or called control settings)
以下是定義
BOOL GetCommState( HANDLE hFile, LPDCB lpDCB );
DCB
This structure defines the control setting for a serial communications device.
裡面有幾個參數
跟
uart port 的 cts and rts 的意義
有關係- fRtsControl
- Specifies the RTS (request-to-send) flow control.
RTS_CONTROL_DISABLE
RTS_CONTROL_ENABLE
RTS_CONTROL_HANDSHAKE
RTS_CONTROL_TOGGLE
如果不做 flow control
設定成 RTS_CONTROL_DISABLE 應該就可以
在用SetCommState設定
BOOL SetCommState(當然通常會先Getcommstate
HANDLE hFile,
LPDCB lpDCB
);
then SetCommState
透過Facebook分享
uart port 的 cts and rts 的意義
Yahoo知識家
有好解答
CTS: clear to set 給device(A)用
RTS: request to set 給pc(B)用
A可以借由CTS讓B知道此時可不可以繼續傳送Data過來
相同地
B也可以藉由RTS讓A知道此時......
這個部份是uart hardware做控制的
軟體只負責去設定目前他想不想要硬體做這樣子的flow control
當然
硬體不做(線路做調整)
軟體不管怎麼調
都不會做flow control
有好解答
CTS: clear to set 給device(A)用
RTS: request to set 給pc(B)用
A可以借由CTS讓B知道此時可不可以繼續傳送Data過來
相同地
B也可以藉由RTS讓A知道此時......
這個部份是uart hardware做控制的
軟體只負責去設定目前他想不想要硬體做這樣子的flow control
當然
硬體不做(線路做調整)
軟體不管怎麼調
都不會做flow control
透過Facebook分享
從來沒想過WriteFile還會出問題
出問題
到底出了什麼問題
Debug的時候
Run到WriteFile
結果還會沒有辦法Debug下去
就卡在這個function
而且這個function還是Microsoft
剩下有關係的
當然就是MS and Uart Driver
但是
你敢說MS有問題嗎
所以當然是Uart Driver有關
這個部份
我沒解
因為我沒有寫Uart Driver
就交給寫Uart Driver的人嚕
到底出了什麼問題
Debug的時候
Run到WriteFile
結果還會沒有辦法Debug下去
就卡在這個function
而且這個function還是Microsoft
剩下有關係的
當然就是MS and Uart Driver
但是
你敢說MS有問題嗎
所以當然是Uart Driver有關
這個部份
我沒解
因為我沒有寫Uart Driver
就交給寫Uart Driver的人嚕
透過Facebook分享
2008年6月23日 星期一
如何讓你的wince os支援activesync
當然本身所使用的OS就要有支援
那build OS的時候要怎麼知道哪個部份是相關性的呢
windows 定義的地方
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
將 DefaultClientDrive 設定成 Serial_Class
Like
"DefaultClientDriver"="Serial_Class"
就有支援嚕
再來就是你的硬體是否有做開關設定
Reference:
http://kunyi.spaces.live.com/blog/cns!30484CDA412A1D29!547.entry
那build OS的時候要怎麼知道哪個部份是相關性的呢
windows 定義的地方
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
將 DefaultClientDrive 設定成 Serial_Class
Like
"DefaultClientDriver"="Serial_Class"
就有支援嚕
再來就是你的硬體是否有做開關設定
Reference:
http://kunyi.spaces.live.com/blog/cns!30484CDA412A1D29!547.entry
透過Facebook分享
替IP分享器安裝一台專門的電風扇
家裡網路總是有時候會斷掉
拔插cable的電源
拔插IP分享器的電源
就會好
這幾天
弟弟測出
只要拔IP分享器
也行
懷疑是IP分享器出了問題
結果拆開之後
發現CPU燙的嚇人
還好沒有燒壞掉
於是趕快替它安裝一台專門伺候它的電扇
找個可以供電的電容
替它供電
當然 需要三用電錶來量測
擺設的方式
目前還沒有想法
所以先放在CPU的上方
打開電
ok
透過Facebook分享
workrecord - 拿到原廠商提供的BSP
拿到一個新的BSP
直接build OS
選擇 Build and Sysgen Current BSP
一直出現有需要到PBWorkSpaces的檔案
有些是 *.def
有些是 *.lib
照理來說
這些檔案是應該要在Sysgen的時候就要產生了
所以決定重新build
換回原本的code
build OS
選擇Sysgen
then
Build and Sysgen Current BSP
OK
直接build OS
選擇 Build and Sysgen Current BSP
一直出現有需要到PBWorkSpaces的檔案
有些是 *.def
有些是 *.lib
照理來說
這些檔案是應該要在Sysgen的時候就要產生了
所以決定重新build
換回原本的code
build OS
選擇Sysgen
then
Build and Sysgen Current BSP
OK
透過Facebook分享
訂閱:
文章 (Atom)