2008年6月26日 星期四

PWM - pulse width modulation 的用途

Charles又教我一招啦
紀錄一下

PWM的作用

軟體控制GPIO
負責控制High and Low
3v3 代表 High
0v 代表 Low

如果你需要讓硬體線路的某個部份維持
1v3 or 0.7v or 2.9v ...等等
該怎麼辦

這個時候
你就需要PWM

此時
需要知道一個專有名詞 叫做 duty cycle
其實它就代表一個週期
這個週期內
active的時期 就是所謂的 duty

透過設定 duty的時間
就可以控制線路需要到多少v

透過Facebook分享

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.

裡面有幾個參數

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(
HANDLE hFile,
LPDCB lpDCB
);
當然通常會先Getcommstate
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

透過Facebook分享

從來沒想過WriteFile還會出問題

出問題
到底出了什麼問題

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

透過Facebook分享

替IP分享器安裝一台專門的電風扇



家裡網路總是有時候會斷掉
拔插cable的電源
拔插IP分享器的電源
就會好

這幾天
弟弟測出
只要拔IP分享器
也行
懷疑是IP分享器出了問題

結果拆開之後
發現CPU燙的嚇人
還好沒有燒壞掉

於是趕快替它安裝一台專門伺候它的電扇

找個可以供電的電容
替它供電
當然 需要三用電錶來量測


擺設的方式
目前還沒有想法
所以先放在CPU的上方


打開電
ok

透過Facebook分享

如果錄製自己的demo帶

參考

如何用電腦唱卡啦OK? (千千靜聽+去除人聲+自動歌詞)


我認為應該是可以用去除人聲的方式
+一個錄音軟體
就可以錄製自己的demo帶

還沒測試驗證過
等待驗證

透過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

透過Facebook分享