1.PNG (17.55 KB, 下載次數: 97)
下載附件
2021-12-6 15:28 上傳
2.PNG (29.74 KB, 下載次數: 90)
下載附件
2021-12-6 15:29 上傳
3.PNG (30.16 KB, 下載次數: 73)
下載附件
2021-12-6 15:29 上傳
4.PNG (30.47 KB, 下載次數: 80)
下載附件
2021-12-6 15:29 上傳
5.PNG (20.53 KB, 下載次數: 76)
下載附件
2021-12-6 15:29 上傳
6.PNG (30.29 KB, 下載次數: 81)
下載附件
2021-12-6 15:29 上傳
這是網上找的關于C8051F020利用自身的DAC輸出1K HZ的正弦波的程序。我已經用示波器把波形顯示出來了,非常完美。程序和示波器的波形已經上傳網上了。
但是針對這個程序我有太多的疑問,請高手幫我看一下:
第一:sfr16 RCAP4 = 0xE4; // Timer4 capture/reload
sfr16 TMR4 = 0xF4; // Timer4
sfr16 DAC0 = 0xd2; // DAC0 data
sfr16 DAC1 = 0xd5; // DAC1 data
程序有這個定義,我想知道是干什么用的?好像沒看到有什么作用。
第二:#define SAMPLE_RATE_DAC 100000L // DAC sampling rate in Hz
這是DAC的采樣率,請問L 是什么單位。
// <PHASE_ADD> is the change in phase between DAC samples; It is used in
// the set_DACs routine.
unsigned int PHASE_ADD = FREQUENCY * PHASE_PRECISION / SAMPLE_RATE_DAC;
這時兩個dac的相位變化,我想知道為什么是這個公式,怎么來的。
第三:TIMER4_Init(SYSCLK/SAMPLE_RATE_DAC);// Initialize Timer4 to overflow
定時器4的溢出為什么是 SYSCLK/SAMPLE_RATE_DAC ?
第四: DAC0 = SIN_temp ^ 0x8000;
DAC1 = COS_temp ^ 0x8000; // Write to DAC1
為什么要或上8000?
最后附上程序和波形圖
C8051F020程序:
正弦波輸出.zip
(36 KB, 下載次數: 39)
2021-12-6 15:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
視頻:
正弦波視頻.zip
(4.47 MB, 下載次數: 26)
2021-12-6 15:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|