熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
| 100000L,長(zhǎng)整型? |
| 不錯(cuò) 很棒的程序 |
|
第一:sfr16 RCAP4 = 0xE4; // Timer4 capture/reload sfr16 TMR4 = 0xF4; // Timer4 sfr16 DAC0 = 0xd2; // DAC0 data sfr16 DAC1 = 0xd5; // DAC1 data 程序有這個(gè)定義,我想知道是干什么用的?好像沒看到有什么作用。 => 這是寄存器定義,等同于 SFR P0 = 0x80; 只不過(guò)這是16位的。 第二:#define SAMPLE_RATE_DAC 100000L // DAC sampling rate in Hz 這是DAC的采樣率,請(qǐng)問L 是什么單位。 // <PHASE_ADD> is the change in phase between DAC samples; It is used in // the set_DACs routine. => L 是 long型的意思,在Keil3 以上時(shí)可以不需要加L,但是有些編譯器不加 L 的話,默認(rèn)最大只支持到 65535 , 總之加了絕對(duì)不會(huì)錯(cuò)。 unsigned int PHASE_ADD = FREQUENCY * PHASE_PRECISION / SAMPLE_RATE_DAC; 這時(shí)兩個(gè)dac的相位變化,我想知道為什么是這個(gè)公式,怎么來(lái)的。 => 這個(gè)指示程序員自己擬定的一個(gè)計(jì)算公式,大致的意思是: 頻率 * 脈沖精度 / DAC的采樣率 至于,具體怎么來(lái)的,要問程序員了。 第三:TIMER4_Init(SYSCLK/SAMPLE_RATE_DAC);// Initialize Timer4 to overflow 定時(shí)器4的溢出為什么是 SYSCLK/SAMPLE_RATE_DAC ? => 和上面類似,也就是 系統(tǒng)時(shí)鐘 / DAC的采樣率 第四: DAC0 = SIN_temp ^ 0x8000; DAC1 = COS_temp ^ 0x8000; // Write to DAC1 為什么要或上8000? => 這里不是或,是 與或 也就是反轉(zhuǎn)最高位,結(jié)合 SIN COS來(lái)看,就是把正的變負(fù)的負(fù)的變正的吧。 好像,你就這些問題吧? |
| 參與人數(shù) 1 | 黑幣 +5 | 收起 理由 |
|---|---|---|
|
| + 5 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)