打印
[STM8]

求助:关于stm8的时钟切换的问题

[复制链接]
697|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaxiaoxi|  楼主 | 2015-1-30 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*程序描述:切换时钟源*/

#include"stm8s105s4.h"
//函数功能:延时功能
//输入参数:ms--要延时的毫秒数,这里假设cpu的主频为2M
//输出参数:无
//返回参数:无
//备    注: 无
void DelayMs(unsigned int ms)
{
        while(ms!=0)
   {
                 unsigned char i;
                 for(i=0;i<250;i++);
           for(i=0;i<75;i++);          
                        ms--;
   }
}
void GPIO_Int(void)
{
        PD_DDR = 0X18;
        PD_CR1 = 0X18;
        PD_CR2 = 0X00;
}
_Bool led2 @PD_ODR:3;
_Bool led1 @PD_ODR:4;
main()
{
        int i;
        GPIO_Int();
for(i=0;i<10;i++)
        {
         led2 = 1;
         led1 = 1;
         DelayMs(300);
         led2 = 0;
         led1 = 0;
         DelayMs(300);
        }
        CLK_ECKR = 0X01;//enable HSE
        while((CLK_ECKR & 0x02) == 0x00);//等待HSE
        for(;;)
         {
                 CLK_SWCR = CLK_SWCR | 0X02;
                 CLK_SWR = 0XB4;
                 while((CLK_SWCR & 0x08) == 0);
                 CLK_SWCR = CLK_SWCR & 0XFD;
                 for(i=0;i<10;i++)
                 {
                         led2 = 1;
                         led1 = 1;
                         DelayMs(300);
                         led2 = 0;
                         led1 = 0;
                         DelayMs(300);
                        }
                        CLK_SWCR = CLK_SWCR | 0X02;
                        CLK_SWR = 0xE1;
                        while((CLK_SWCR & 0X08) == 0);
                        CLK_SWCR = CLK_SWCR & 0Xfd;
                        for(i=0;i<10;i++)
                                 {
                                         led2 = 1;
                                         led1 = 1;
                                         DelayMs(300);
                                         led2 = 0;
                                         led2 = 0;
                                         DelayMs(300);
                                 
                                        }
                       
                 }
  我想问一下为什么我这个程序烧录进去之后不能运行?就是只有运行到两个led小灯闪了10次之后就一直在亮了。没有看到其他现象。
还有我想问的是:        while((CLK_ECKR & 0x02) == 0x00);//等待HSE
这句话是什么意思?
本人新人一枚,感谢各位老大帮帮忙!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝