12.03.2010
10.19.2010
fgetc, fgets, fflush
fgetc 是一次只get 一個字元
當 fgetc(stdin)執行時,
是要等有抓到 "enter" 或是 EOF 才會離開
如果user 打很多字,最後才按"enter"
則fgetc return 的值是第一個字,但後面第二個字到"enter"還在 steam 裡
所以下一次的fgetc(stdin)就會抓到下一個字元
可以用下列方式來清
void flush_input ( FILE *in )
{
int c;
while ( ( c = fgetc ( in ) ) != EOF && c != '\n' );
clearerr ( in );
}
printf 也是, 如果印的內容最後沒有"\n" 或 EOF
則不會印出,資料會被keep 在 stream裡
要在之後下 fflush(stdout);
才會印
當 fgetc(stdin)執行時,
是要等有抓到 "enter" 或是 EOF 才會離開
如果user 打很多字,最後才按"enter"
則fgetc return 的值是第一個字,但後面第二個字到"enter"還在 steam 裡
所以下一次的fgetc(stdin)就會抓到下一個字元
可以用下列方式來清
void flush_input ( FILE *in )
{
int c;
while ( ( c = fgetc ( in ) ) != EOF && c != '\n' );
clearerr ( in );
}
printf 也是, 如果印的內容最後沒有"\n" 或 EOF
則不會印出,資料會被keep 在 stream裡
要在之後下 fflush(stdout);
才會印
2.02.2010
如何訂立目標
第一步: 是把這組人員、專長、想做什麼都列出來~
第二步: 一口氣把這整篇都唸一遍
第三步: 重覆第二步九次~
第四步: 閉目放空然後才想看看要做什麼
第五步: 想像可以做到怎麼樣,有什麼benefit
第六步: 睜開眼睛,然後開始把想像依照實際的可掌握度打個五折
第七步: 告訴組員你的想法,然後充份討論
第八步: 給個時間讓目標確立、沈澱
第九步: 依照目標開始設立實施計畫
http://benson-privategarden.spaces.live.com/blog/cns!1A56B35B2B46AD49!288.entry
個人目標 ->
第一步: 閉上眼睛,想像目標可以做到怎麼樣,有什麼benefit
第二步: 睜開眼睛,然後開始把想像依照實際的可掌握度打個五折
第三步: 告訴別人,你的想法,然後充份討論
第四步: 給個時間讓目標確立、沈澱
第五步: 依照目標開始設立實施計畫
第二步: 一口氣把這整篇都唸一遍
第三步: 重覆第二步九次~
第四步: 閉目放空然後才想看看要做什麼
第五步: 想像可以做到怎麼樣,有什麼benefit
第六步: 睜開眼睛,然後開始把想像依照實際的可掌握度打個五折
第七步: 告訴組員你的想法,然後充份討論
第八步: 給個時間讓目標確立、沈澱
第九步: 依照目標開始設立實施計畫
http://benson-privategarden.spaces.live.com/blog/cns!1A56B35B2B46AD49!288.entry
個人目標 ->
第一步: 閉上眼睛,想像目標可以做到怎麼樣,有什麼benefit
第二步: 睜開眼睛,然後開始把想像依照實際的可掌握度打個五折
第三步: 告訴別人,你的想法,然後充份討論
第四步: 給個時間讓目標確立、沈澱
第五步: 依照目標開始設立實施計畫
11.20.2009
9.14.2009
7.09.2009
業餘跟職業的差別
最近看了Robert Kiyosaki 的文章裡提到的一段話,感同深受
"People say amateurs play for the love of the game and professionals play for money. That is not true. Amateurs are amateurs because they do not love the game enough. When it is cold and rainy, a professional golfer will play. The amateur will not. When they are sick, the professional will play. The amateur stays in bed. When they are losing, the professional will practice harder and enter more tournaments. The amateur will quit and take up tennis."
記得還是小學的時候,很喜歡玩棒球,常常在中午大熱天,同學想休息的時候,拉著他們一起去玩。很懷念那時單純渴望的感覺。那時如果我爸繼續讓我打球,也許現在我也是王建民 :P
現在看看自己再做的事,不至於厭惡,但也沒有小時的熱誠。我也算是業餘在我這一行 = ="
5.21.2009
USB On-The-Go Basics - Cable
在 USB 的世界裡,有分Host跟Peripheral ,任何的傳輸動作都是 Host先 send 封包出來,所以知道誰是 Host 誰是 Peripheral 是很重要的在USB的protocol 裡, 再因為 USB cable 是決定OTG devcie是當A-Device(Host)還是B-Device(peripheral)的依據,所以我們先認識一下USB OTG 的 cable.
- 一般標準的USB cable 的頭就有分A 頭跟B 頭,A頭就是接Host, B頭就是接peripheral.
- 後來多了一個叫 mini-USB 的B頭,是給像隨身聽這類小產品用的,也都只是當peripheral
- 後來又出了一個叫 OTG mini-AB receptacle.就是專給 OTG deivce 用的母頭. 它可接mini-A公頭也可接mini-B公頭
- 下圖上方,是Camera 當 Host, Printer當 Peripheral ,它可能的功能就是讓Camera 裡的照片直接透過Printer印出。下方那一個,兩個Camera 都是用OTG Mini-AB 母頭,也就是可插A頭也可插B頭,那要怎麼區分誰是 Host? 誰是 Peripheral呢? 就是靠 cable 的接頭來決定。在A頭跟B頭裡面的 ID pin 是不同的,A頭裡 ID是pull low, B頭裡ID是pull hi。而 device 再依照ID pin 來決定自己是Host 還是peripheral。
- 因為Mini-AB母頭可接A or B, 在這樣的情形下 user 有可能會接反,如下圖,原本Camera是要當Host,因為接反插入 B 頭而變為 Peripheral, 而 Printer 也是一樣,那不就不能動了。好再OTG 架構也想到這個問題,所以提供了一個叫 Host Negotiation Protocol (HNP) 來結決這個問題,讓 user 不用換 calbe 也可繼續用。
Subscribe to:
Posts (Atom)