打印
[DemoCode下载]

系统时钟切换操作

[复制链接]
802|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
antusheng|  楼主 | 2019-6-30 23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2017 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Nuvoton Technoledge Corp.
//  Website: http://www.nuvoton.com
//  E-Mail : MicroC-8bit@nuvoton.com
//  Date   : Apr/21/2017
//***********************************************************************************************************

//***********************************************************************************************************
//  File Function: N76E003 System clock select demo code
//***********************************************************************************************************

#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"

//========================================================================
//  The test process:
//        1. Power on is run as default HIRC, show LED Fsys tickle faster
//         2. toggle P3.0 to GND.
//        2. call modify Fsys code to LIRC.
//        3. LED tickle speed slowly than before.
//========================================================================
void main(void)
{

/* Note
  MCU power on system clock is HIRC (16 MHz)
        Please keep P3.0 HIGH before you want to modify Fsys to LIRC
*/
       
          Set_All_GPIO_Quasi_Mode;                           // In Common.h define
    set_CLOEN;                                                                                                                            // Also can check P1.1 CLO pin for clock to find the Fsys change.
                set_P30;
                while (P30)                                                                                                                                        // when P3.0 keep high, clock out HIRC
                {   
                                clr_GPIO1;                                                                                                                        // Check LED output tickle time
        Timer0_Delay1ms(200);
        set_GPIO1;
        Timer0_Delay1ms(200);
                }
       
////------------------------------------------------------------------------------------------------------
///*********************************** Change system closk source ***************************************/
////------------------------------------------------------------------------------------------------------
              
////***** HIRC enable part *****               
//                set_HIRCEN;                                                                                                //step1: enable HIRC clock source run
//                while((CKSWT&SET_BIT5)==0);                                //step2: check ready
//                clr_OSC1;                                                                                                        //step3: switching system clock source if needed
//                clr_OSC0;
//                while((CKEN&SET_BIT0)==1);                                //step4: check system clock switching OK or NG
//
////***** LIRC enable part*****
////** Since LIRC is always enable, switch to LIRC directly
                set_OSC1;                                                                                                        //step3: switching system clock source if needed
                clr_OSC0;  
                while((CKEN&SET_BIT0)==1);                                //step4: check system clock switching OK or NG        
                clr_HIRCEN;
   
////--------------------------------------------------------------------------------------------------------
   
/*
  Now Fsys = LIRC , LED tickle slowly.
*/
    while(1)
    {
                                clr_GPIO1;                                                                                                                        // Check LED output tickle time
        clr_P00;
        set_GPIO1;
        set_P00;
    }
/* =================== */
}



使用特权

评论回复
沙发
antusheng|  楼主 | 2019-6-30 23:11 | 只看该作者
这个例子演示了如何切换时钟。

使用特权

评论回复
板凳
zhuomuniao110| | 2019-7-22 13:34 | 只看该作者
工作中可以切换吗,比如不同的应用子函数采用不同的时钟

使用特权

评论回复
地板
xuanhuanzi| | 2019-7-23 11:38 | 只看该作者
运行中可以切换非常好。

使用特权

评论回复
5
xinxianshi| | 2019-7-23 21:25 | 只看该作者
时钟的切换一般很少用

使用特权

评论回复
6
xixi2017| | 2019-7-25 13:13 | 只看该作者
可以通过Blink看到效果。

使用特权

评论回复
7
mintspring| | 2019-7-26 00:11 | 只看该作者
可以自由切换。

使用特权

评论回复
8
捉虫天师| | 2019-7-28 23:27 | 只看该作者
一般都是先预定好。

使用特权

评论回复
9
幸福小强| | 2019-7-29 09:21 | 只看该作者
看起来很容易,不需要寄存器保护。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

1450

帖子

5

粉丝