#include<iostm8s.h>
_Bool LED1 @PD_ODR:2;
_Bool CCO @PC_ODR:4;
_Bool JDQ @PC_ODR:7;
unsigned int nCount;
void Delay(void)
{
nCount = 10;
while (nCount != 0)
{
nCount--;
}
}
void GPIO_Init(void)
{
PD_DDR=0x04;//PD1 LED
PD_CR1=0X04;
PC_DDR=0x80;//继电器
PC_CR1=0X80;//推挽CCO
}
void CLK_Init(void)
{
CLK_SWCR|=0x02;//切换使能
CLK_ECKCR = 0x01;//允许外部时钟工作
while(!(CLK_ECKCR&0x02));//外部时钟准备就绪
CLK_SWR = 0xB4;//切换外部时钟作为主时钟
CLK_ICKCR = 0x00;
while((CLK_SWCR&0x01)==0x01);
CLK_CKDIVR = 0x00;//FHSI RC不分频输出 FCPU=FMASTER不分频输
CLK_SWCR&=(~0x02);
CLK_PCKENR1=0x80;
CLK_PCKENR2=0x00;
//CLK_CSSR = 0x00;//关时钟安全
CLK_CCOR =0x05;//或0x09
}
void main(void)
{
unsigned int a;
_asm("sim");//关全局中断
GPIO_Init();
CLK_Init();
_asm("rim"); //开全局中断
while (1)
{
LED1=~LED1;
Delay();
}
}
C:\Users\Administrator\Desktop
用ST-LINK进行单步调试时,最终CLK_CCOR寄存器的值为0x65,CCORDY为1,为什么CCO时钟不可用? |