xsh2005105326 发表于 2012-5-13 12:06:10

实测LGT跑外部高速晶振(22.1184M)

代码如下(IAR 5.40):
#include <iolgt8f0xa.h>
#include<intrinsics.h>
#define u8 unsigned char
#define u16 unsigned int

void time0_init(void);
void port_init(void);
void delay_nms(unsigned int n);

void main(void)
{
u8 i,temp;
port_init();
time0_init();
PMCR=0x35;         //使能外部晶振
delay_nms(10);   //延时10ms等待晶振输入稳定
PMCR=0x34;         //切换为外部晶振
while(1)
{
    PORTA = 0;
    PORTA = 255;
}
   /*while(1)
   {
    temp = 0x01;
    for(i=0;i<8;i++)
    {
   PORTA = temp;
   delay_nms(100);
   temp<<=1;
    }
   }*/
}
/******************************************************************************
函 数 名:void port_init(void)
功    能:IO初始化
说    明:   
参    数:   
返 回 值:   
*******************************************************************************/
void port_init(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTC |= 0x40;
DDRC |= 0x40;//PC6 for output
}
/******************************************************************************
函 数 名:void time0_init(void)
功    能:T0初始化
说    明:   
参    数:   
返 回 值:   
*******************************************************************************/
void time0_init(void)
{
TCCR0A = 0xC3;//0x83
TCCR0B = 0x01;//FPWM,F=CLK;
TCNT0 = 0xdd;
OCR0 = 0x11;//编程手册是OCR0
}
/******************************************************************************
函 数 名:void delay_nms(u16 n)
功    能:延时
说    明:   
参    数:   
返 回 值:   
*******************************************************************************/
void delay_nms(u16 n)
{
u16 i;
for(;n>0;n--)
{
    for(i=0;i<1000;i++)
    {
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
    }
}       
}
IO反转速度是2.21MHz,如图

PWM频率是43.22KHz,如图



logicgreen 发表于 2012-5-13 22:18:36

啥示波器,肿么输入容抗很大?

wodish 发表于 2012-5-13 22:29:07

这个看着真的很不错哦

xsh2005105326 发表于 2012-5-14 09:22:10

logicgreen 发表于 2012-5-13 22:18 static/image/common/back.gif
啥示波器,肿么输入容抗很大?

鼎阳的,便宜货,示波器反应速度很慢

mowin 发表于 2012-5-14 09:37:43

不是可以跑32M吗,你的还差10M呢

xsh2005105326 发表于 2012-5-14 09:48:42

mowin 发表于 2012-5-14 09:37 static/image/common/back.gif
不是可以跑32M吗,你的还差10M呢

手上有一个大个的晶振是31点几M的,但是实测比22M速度还慢,不知道咋回事。貌似是没起振,切换到外部时钟不成功,还是内部RC吧

logicgreen 发表于 2012-5-14 10:19:57

xsh2005105326 发表于 2012-5-14 09:48 static/image/common/back.gif
手上有一个大个的晶振是31点几M的,但是实测比22M速度还慢,不知道咋回事。貌似是没起振,切换到外部时钟 ...

要基频的,不要泛音的。估计31/3=10Mhz,所以慢。

xsh2005105326 发表于 2012-5-14 11:54:02

logicgreen 发表于 2012-5-14 10:19 static/image/common/back.gif
要基频的,不要泛音的。估计31/3=10Mhz,所以慢。

谢谢。另外请教下,前几天更新的文件(IAR下使用)有问题吧,文件名和文件内容不对应
页: [1]
查看完整版本: 实测LGT跑外部高速晶振(22.1184M)