打印
[DemoCode下载]

N76E003的时钟信号还可以输出

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

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

//***********************************************************************************************************
//  File Function: N76E003 Clock Output demo code
//***********************************************************************************************************

#include <stdio.h>
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"


//======================================================================================================

void main(void)
{
       
    /* Note
       MCU power on system clock is HIRC (16.0000MHz), if need change Fsys source pleaes copy hange system closk source demo
    */
   
                Set_All_GPIO_Quasi_Mode;                    //in Function_define.h
    set_CLOEN;                                  //System Clock Output Enable
//     Please measure P1.1 (CLO) pin for system clock output, it should as system clock;

    while(1)
    {
        clr_GPIO1;
        Timer0_Delay1ms(500);
        set_GPIO1;
        Timer0_Delay1ms(500);
    }
/* =================== */
}


沙发
gejigeji521|  楼主 | 2017-9-28 19:31 | 只看该作者
把时钟信号输出来,可以做很多事。

使用特权

评论回复
板凳
gejigeji521|  楼主 | 2017-9-28 19:36 | 只看该作者
其实就是通过IO输出高电平和低电平。。

使用特权

评论回复
地板
huangcunxiake| | 2017-9-30 20:21 | 只看该作者
貌似就是输出0,然后输出1,然后循环。以为配置好,自动输出呢。

使用特权

评论回复
5
598330983| | 2017-10-1 21:12 | 只看该作者
这个延时函数我要好好研究一下

使用特权

评论回复
6
734774645| | 2017-10-2 10:55 | 只看该作者
原来是这种,把我吸引进来,如果有配置好,不用操作就可以的就更好了

使用特权

评论回复
7
xinpian101| | 2017-10-2 22:45 | 只看该作者
利用定时器写的吧,有个疑问,定时器不配置,那么默认情况是运行的吗?

使用特权

评论回复
8
dongnanxibei| | 2017-10-3 10:54 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2016 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

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

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"
bit BIT_TMP;

//-------------------------------------------------------------------------
void Timer0_Delay100us(UINT32 u32CNT)
{
    clr_T0M;                                                //T0M=0, Timer0 Clock = Fsys/12
    TMOD |= 0x01;                                           //Timer0 is 16-bit mode
    set_TR0;                                                //Start Timer0
    while (u32CNT != 0)
    {
        TL0 = LOBYTE(TIMER_DIV12_VALUE_100us);        //Find  define in "Function_define.h" "TIMER VALUE"
        TH0 = HIBYTE(TIMER_DIV12_VALUE_100us);
        while (TF0 != 1);                                   //Check Timer0 Time-Out Flag
        clr_TF0;
        u32CNT --;
    }
    clr_TR0;                                                       //Stop Timer0
}
//------------------------------------------------------------------------------
void Timer0_Delay1ms(UINT32 u32CNT)
{
    clr_T0M;                                                //T0M=0, Timer0 Clock = Fsys/12
    TMOD |= 0x01;                                           //Timer0 is 16-bit mode
    set_TR0;                                                //Start Timer0
    while (u32CNT != 0)
    {
        TL0 = LOBYTE(TIMER_DIV12_VALUE_1ms);                 //Find  define in "Function_define.h" "TIMER VALUE"
        TH0 = HIBYTE(TIMER_DIV12_VALUE_1ms);
        while (TF0 != 1);                                   //Check Timer0 Time-Out Flag
        clr_TF0;
        u32CNT --;
    }
    clr_TR0;                                                //Stop Timer0
}

//------------------------------------------------------------------------------
void Timer1_Delay10ms(UINT32 u32CNT)
{
    clr_T1M;                                                                                                                                                //T1M=0, Timer1 Clock = Fsys/12
    TMOD |= 0x10;                                                                                                                                //Timer1 is 16-bit mode
    set_TR1;                                                                                                                                                //Start Timer1
    while (u32CNT != 0)
    {
        TL1 = LOBYTE(TIMER_DIV12_VALUE_10ms);                //Find  define in "Function_define.h" "TIMER VALUE"
        TH1 = HIBYTE(TIMER_DIV12_VALUE_10ms);
        while (TF1 != 1);                                                                                                //Check Timer1 Time-Out Flag
        clr_TF1;
        u32CNT --;
    }
    clr_TR1;                                                       //Stop Timer1
}
//------------------------------------------------------------------------------
void Timer2_Delay500us(UINT32 u32CNT)
{
    clr_T2DIV2;                                                                                                                                        //Timer2 Clock = Fsys/4
    clr_T2DIV1;
    set_T2DIV0;
    set_TR2;                                                //Start Timer2
    while (u32CNT != 0)
    {
        TL2 = LOBYTE(TIMER_DIV4_VALUE_500us);                //Find  define in "Function_define.h" "TIMER VALUE"
        TH2 = HIBYTE(TIMER_DIV4_VALUE_500us);
        while (TF2 != 1);                                   //Check Timer2 Time-Out Flag
        clr_TF2;
        u32CNT --;
    }
    clr_TR2;                                                //Stop Timer2
}
//------------------------------------------------------------------------------
void Timer3_Delay100ms(UINT32 u32CNT)
{
    T3CON = 0x07;                                           //Timer3 Clock = Fsys/128
    set_TR3;                                                //Trigger Timer3
    while (u32CNT != 0)
    {
        RL3 = LOBYTE(TIMER_DIV128_VALUE_100ms); //Find  define in "Function_define.h" "TIMER VALUE"
        RH3 = HIBYTE(TIMER_DIV128_VALUE_100ms);
        while ((T3CON&SET_BIT4) != SET_BIT4);                //Check Timer3 Time-Out Flag
        clr_TF3;
        u32CNT --;
    }
    clr_TR3;                                                //Stop Timer3
}
//------------------------------------------------------------------------------
void Timer3_Delay10us(UINT32 u32CNT)
{
    T3CON = 0x07;                                           //Timer3 Clock = Fsys/128
    set_TR3;                                                //Trigger Timer3
    while (u32CNT != 0)
    {
        RL3 = LOBYTE(TIMER_DIV4_VALUE_10us); //Find  define in "Function_define.h" "TIMER VALUE"
        RH3 = HIBYTE(TIMER_DIV4_VALUE_10us);
        while ((T3CON&SET_BIT4) != SET_BIT4);                //Check Timer3 Time-Out Flag
        clr_TF3;
        u32CNT --;
    }
    clr_TR3;                                                //Stop Timer3
}

使用特权

评论回复
9
捉虫天师| | 2017-10-4 12:25 | 只看该作者
虽然这些库函数看着不知道怎么实现,有时候自己能力差理解不了

使用特权

评论回复
10
zhuomuniao110| | 2017-10-5 14:25 | 只看该作者
延时函数怎么没有讲在什么主频下,什么晶振都可以吗

使用特权

评论回复
11
jiekou001| | 2017-10-5 23:00 | 只看该作者
输出的这个可以接个LED灯泡显示。

使用特权

评论回复
12
heisexingqisi| | 2017-10-6 13:33 | 只看该作者
其实我们关心的就是延时函数能否适应时钟的变化。

使用特权

评论回复
13
wahahaheihei| | 2017-10-6 13:36 | 只看该作者
清零和置位都是宏实现的,方便不少

使用特权

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

本版积分规则

180

主题

2250

帖子

8

粉丝