|
发表于 2013-2-18 14:16:02
|
显示全部楼层
又测了一下确实不会写熔丝位
uint8_t i, oldOSCCAL, oldCLKPR;
oldOSCCAL = OSCCAL;
oldCLKPR = CLKPR;
//LED初始化
DDRD = 1<<PD7;
ledRedOff();
_delay_ms(500);
//2分频 8M 19200
InitUART( 0x0067);
TransmitByte( 0xff);
TransmitByte( 0x00);
TransmitByte( OSCCAL);
TransmitByte( CLKPR);
TransmitByte( 0x00);
TransmitByte( 0xff);
//重设时钟校准值
OSCCAL = 7;
CLKPR = 0x80;
CLKPR = 0x80;
_delay_ms(100);
//1分频 16M 19200
InitUART( 0x0067);
TransmitByte( 0xff);
TransmitByte( 0x00);
TransmitByte( OSCCAL);
TransmitByte( CLKPR);
TransmitByte( oldOSCCAL);
TransmitByte( oldCLKPR);
TransmitByte( 0x00);
TransmitByte( 0xff);
for (i=0; i<20; i++)
{
ledRedToggle();
_delay_ms(100);
}
ledRedOff();
_delay_ms(1000);
while(1);
return 0;
软复位 FF 00 07 00 07 00 00 FF
上电 FF 00 07 00 40 00 00 FF
不知道为什么 芯片上电不是2分频
看返回的值 OSCCAL 在设置之前读取没意义 |
|