typedef FILE* stream;
stream f_in;
int numclosed;
建立一個可寫入data的檔案並設其路徑
f_in = _wfopen(L"\\My Flash Disk\\BTMAC.txt",L"w");
char s=':';
將 Bluetooth MAC 依序寫入檔案
for(i=0;i<=5;i++)
{
fwprintf(f_in,L"%x",toc->bBTAddr[i]);
if(i<5)
fwprintf(f_in,L"%c",s);
}
numclosed = fcloseall();
2007年9月18日 星期二
2007年9月3日 星期一
何謂SDHC(Secure Digital High-Capacity)
轉貼至聯強E城市
SDHC記憶卡全名是Secure Digital High Capacity,是SD協會在2006年3月發表SD 2.0規格的SD卡高容量版本。SDHC與SD的主要差異在於舊版本使用FAT16檔案系統,意思是管理檔案所在位置的表格(File Allocation Table)用16位元表示,所以最多只能管理65536個sector,再考慮每個sector能儲存32KB的資料量,所以65536 × 32KB = 2GB,SD卡容量上限只能到達2GB。為解決FAT16格式可支援容量有限的問題,SDHC改用了FAT32格式,依規格定義容量最大可達到32GB。
然而改用FAT32格式會對舊型讀卡機、手機或數位相機等產生無法辨識的問題,只有在較新的裝置上才可能支援。為此,新記憶卡特別強調其名稱為SDHC,而非沿用SD,以讓使用者在外觀上明顯看到其有所不同,避免搭配到不相容的裝置。
在過去,SD卡的資料傳輸速率,各家公司的表示方法各不相同,無法清楚瞭解使用的記憶卡是否已經達到裝備需求的速率。SD協會對於資料傳輸速率制定了SD Speed Class(SD傳輸速率級別)。其代表意義為:
SD協會並且要求記憶卡製造商必須在SDHC外觀清楚標示SD Speed Class等級。在拍攝動畫或連續拍攝等高速傳輸的前提下,往後市場上銷售的消費性電子產品,都會標示有推薦的SD Speed Class,以供消費者方便購買使用。

2007年7月15日 星期日
WinCE Interrupt (中斷)
關於中斷的相關名詞解釋: (參照書本及網路資源)
1.何謂IRQ:
IRQ即所謂的中斷請求(Interrupt Request) ,是指硬體裝置發給CPU的訊號,要求CPU暫時先放下目前正在處理的工作,將工作的優先權暫時先讓給此發送訊號的硬體裝置,如Touch panel, keyboard, audio的I/O處理... 等等相關硬體裝置,都是透過IRQ來對CPU發出中斷請求。
2.何謂ISR:
ISR即所謂的中斷服務常式(Interrupt Service Routine),指用來回應硬體裝置發出IRQ的軟體常式,屬於OAL層,主要的工作為判斷硬體發生中斷的原因,並回傳一特定的Interrupt ID(SYSINTR)給Kernel,Kernel則會喚醒IST對中斷做進ㄧ步的處理。
3.何謂Interrupt ID:
Interrupt ID即所謂邏輯中斷識別碼(Interrupt Identifier),每個都是獨一無二的值,代表著某個硬體裝置發出的邏輯中斷要求。藉由Interrupt ID,kernel可以表示是否該處理可以完成,或是需要IST (Interrupt Service Threads)進ㄧ步處理該中斷請求。
1.何謂IRQ:
IRQ即所謂的中斷請求(Interrupt Request) ,是指硬體裝置發給CPU的訊號,要求CPU暫時先放下目前正在處理的工作,將工作的優先權暫時先讓給此發送訊號的硬體裝置,如Touch panel, keyboard, audio的I/O處理... 等等相關硬體裝置,都是透過IRQ來對CPU發出中斷請求。
2.何謂ISR:
ISR即所謂的中斷服務常式(Interrupt Service Routine),指用來回應硬體裝置發出IRQ的軟體常式,屬於OAL層,主要的工作為判斷硬體發生中斷的原因,並回傳一特定的Interrupt ID(SYSINTR)給Kernel,Kernel則會喚醒IST對中斷做進ㄧ步的處理。
3.何謂Interrupt ID:
Interrupt ID即所謂邏輯中斷識別碼(Interrupt Identifier),每個都是獨一無二的值,代表著某個硬體裝置發出的邏輯中斷要求。藉由Interrupt ID,kernel可以表示是否該處理可以完成,或是需要IST (Interrupt Service Threads)進ㄧ步處理該中斷請求。
4.何謂IST:
•Created by a device driver
•IST is a thread that does most of the interrupt processing
•IST performs necessary I/O operations in the device to collect the data and process it
•IST must associate an event object with an interrupt identifier by InterruptInitialize
•IST can boost themselves to a higher priority by calling CeSetThreadPriority
•IST is a thread that does most of the interrupt processing
•IST performs necessary I/O operations in the device to collect the data and process it
•IST must associate an event object with an interrupt identifier by InterruptInitialize
•IST can boost themselves to a higher priority by calling CeSetThreadPriority
interrupt step flow:

2007年6月24日 星期日
Handfree下的語音導航
目前在研究Handfree下語音導航的可行性,原因是因為當在開車時,別人打電話進來後,除了與別人通話的聲音,也希望可以聽到語音導航的聲音,才不會因為在與人通話時,迷失了導航的方向,現在經由實際測試後是可行的!
但是可能會因此出現一些小bug,目前還在進行測試中....
在通話時同時又要與語音導航的困難點在於:
1.要同時打通兩條audio path
2.要同時從同ㄧ個地方輸出而且彼此訊號不能互相干擾
這兩條path分別如下:
1.Linein->Mic Volume->Headphone Mixer->OUT2
Linein輸入為Differential訊號,輸出也是Differential訊號
2.CPU->AC97->DAC->Speaker Mixer->Record Select->Headphone Mixer->OUT2
CPU輸出的聲音訊號無法得知,但輸出必須為Differential訊號
由於兩條path會經過同ㄧ個Mixer,然而訊號型態卻不ㄧ致,所以有可能會導致輸出訊號失真的情況。
Mixer即所謂的混音器,它可以將多個音源輸入訊號混合在一起,再作輸出,如下圖所示

待續中....
但是可能會因此出現一些小bug,目前還在進行測試中....
在通話時同時又要與語音導航的困難點在於:
1.要同時打通兩條audio path
2.要同時從同ㄧ個地方輸出而且彼此訊號不能互相干擾
這兩條path分別如下:
1.Linein->Mic Volume->Headphone Mixer->OUT2
Linein輸入為Differential訊號,輸出也是Differential訊號
2.CPU->AC97->DAC->Speaker Mixer->Record Select->Headphone Mixer->OUT2
CPU輸出的聲音訊號無法得知,但輸出必須為Differential訊號
由於兩條path會經過同ㄧ個Mixer,然而訊號型態卻不ㄧ致,所以有可能會導致輸出訊號失真的情況。
Mixer即所謂的混音器,它可以將多個音源輸入訊號混合在一起,再作輸出,如下圖所示

待續中....
2007年6月23日 星期六
2007年6月3日 星期日
總諧波失真: THD (Total Harmonic Distortion)
轉貼http://www.csie.nctu.edu.tw/~cckuo/public/tutorials/RMAA%20tutorial/main.html的文章

Total Harmonic Distortion,簡稱 THD。在講解之前,先來瞭解 Harmonic Distortion,也就是諧波失真。諧波失真用來表示檢測非線性失真(Nonlinear Distortion)的結果,非線性失真的定義是輸入訊號經過處理後,輸出時所產生的錯誤部分,這個錯誤部分與原本的輸入訊號無關,通常會在輸入訊號以外的頻率產生其他錯誤訊號。總諧波失真則是用來測試每一個從原始訊號產生出來的新頻率,也就是剛才定義的非線性失真,這些屬於非線性失真的頻率就稱為諧波(harmonics),而且這些諧波的產生位置是原始訊號頻率的整數倍位置,例如 1000Hz 的諧波就是 2kHz、3kHz、4kHz 等。測試 THD 時,是發出 1000Hz 的聲音來檢測,所以圖形中在 1000Hz 的位置會有峰波,我們要觀察的是 1000Hz 右邊產生出來的諧波多寡。這一個值越小越好。 在真空管的機器上,THD 通常相當的多,但是這卻讓聲音產生溫暖和諧的感覺,不過一般的電晶體裝置,例如解碼器、音效卡,其上的奇次諧波(以 1000Hz 來說,3k、5k、7k 就是它的奇次諧波)不會讓聲音變好聽,所以其 THD 值還是要越低越好,通常高品質的裝置都會低於 0.002%。

2007年5月8日 星期二
訂閱:
文章 (Atom)


