| 
 | 
 
先贴上那个函数: 
void ChangeClockDivider(int hdivn,int pdivn) 
{ 
     // hdivn,pdivn FCLK:HCLK:PCLK 
     //     0,0         1:1:1  
     //     0,1         1:1:2  
     //     1,0         1:2:2 
     //     1,1         1:2:4 
     //     2,0         1:4:4 
     //     2,1         1:4:8 
     //     3,0         1:3:3 
     //     3,1         1:3:6 
    rCLKDIVN = (hdivn<<1) | pdivn;     
 
        if (hdivn == 2) 
                rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9);                         
        if (hdivn == 3) 
                rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8); 
} 
就以ChangeClockDivider(2, 1)为例,按照函数说明,调用ChangeClockDivider(2, 1)后,分频比应该为 
1:4:8。执行 rCLKDIVN = (hdivn<<1) | pdivn 后, HDIVN = 10, PDIVN = 1,然后执行第一个if语句 
rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9),此时HCLK4_HALF = 1, HCLK3_HALF = 0,但按照数据手册当 HDIVN = 10, PDIVN = 1,HCLK4_HALF = 1, HCLK3_HALF = 0时,分频比应该为1:8:16。。。。。。。 
不知道我分析的对不对,还是有些东西我没考虑进去,真的很郁闷,自己写了个配置分频比的函数,设置成1:4:8,总是达不到预期效果,望各位指点指点啊啊啊啊啊啊啊啊,谢过了 |   
 
 
 
 |