关于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
1楼-- · 2019-03-25 01:54
应该需要看编译后的汇编指令结果,并结合指令周期。才能根据脉冲宽度推算时钟频率的。可以考虑用定时器中断方式来输出脉冲,并根据其宽度推算时钟频率。
辛昕
2楼-- · 2019-03-25 07:02
 精彩回答 2  元偷偷看……

一周热门 更多>