关于c8051f410的内部时钟问题

2019-03-24 19:55发布

为什么用示波器观察结果计算出来的系统时钟频率是理论值的十分之一
/* ioTest.c */
#include "C8051F410.h"
// Peripheral specific initialization functions,
// Called from the Init_Device() function
sbit ledP04=P0^4;
sbit ledP05=P0^5;
void PCA_Init()
{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
}
void Port_IO_Init()
{

XBR1 = 0x40;
}
void Oscillator_Init()
{
OSCICN = 0x84;
}
// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
PCA_Init();
Port_IO_Init();
Oscillator_Init();
}
void delay(int i){
int j,k;
for(j=0;j<i;j++){
for(k=0;k<1000;k++);
}
}
main(){
Init_Device();
while(1){
ledP04=1;
ledP05=0;
delay(200);
ledP04=0;
ledP05=1;
delay(200);
}
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
wshwan
2019-03-25 01:54
应该需要看编译后的汇编指令结果,并结合指令周期。才能根据脉冲宽度推算时钟频率的。可以考虑用定时器中断方式来输出脉冲,并根据其宽度推算时钟频率。

一周热门 更多>