AT89C51SND制作MP3的問題 |
尚未結案
|
duan1234
一般會員 發表:3 回覆:2 積分:1 註冊:2010-06-07 發送簡訊給我 |
大家好,我使用AT89C51SND單片機做一個MP3,可是資料裏有些不懂,具體如下:
MP3時鐘頻率設置 static void MP3FsInit(unsigned char NDIV, unsigned int RDIV, unsigned char MPCD, unsigned char AUCD) { PLLNDIV = 0; PLLRDIV = 0; MP3CLK = 0; AUDCLK = 0; PLLNDIV = 0x7f & NDIV; PLLCON |= (0x3 & RDIV) << 6; PLLRDIV = (0x3ff & RDIV) >> 2; MP3CLK |= MPCD; AUDCLK |= AUCD; } 調用MP3FsInit函數: switch ((MP3_Framehead[2] & 0x0C) >> 2) { case 0x00:MP3FsInit (24, 126, 3, 5); break; //Fs=44.1kHz case 0x01 : MP3FsInit(124, 575, 3, 4); break; //Fs=48kHz case 0x02 : MP3FsInit(124, 511, 3, 9); AUDCON0 = 0x76; break;//Fs=32kHz default : break; } 其中MP3FsInit (24, 126, 3, 5),Fs=44.1kHz ,但是據MP3FsInit 函數得N=24,R=222,MPCD=3,AUCD=5再根據公式:PLLclk=OSCclk*(R 1)/(N 1), 而OSCclk為20M(采用的是20M外部晶振),得到PLLclk=178.4M. 根據MP3clk=PLLclk/(MPCD 1) 公式得MP3的CLK=44.6M;根據AUDclk=PLLclk/(AUCD 1) ,AUDclk=29.73M。 Fs是怎麽算出來等於44.4Khz? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |