打印
[通用8051核FLASH系列]

HC86S003F4定时器5作为定时用求代码

[复制链接]
989|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
samgharama|  楼主 | 2018-8-22 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-24 14:35 编辑

定时62.5uS
沙发
冷画| | 2018-8-22 16:44 | 只看该作者
你看看官方的demo   找不到的话加我QQ1449251178

使用特权

评论回复
板凳
ICCCCC| | 2018-8-22 17:46 | 只看该作者
https://bbs.21ic.com/icview-2537044-1-1.html
代码生成器,写入定时时长,点击生成代码即可。

使用特权

评论回复
地板
samgharama|  楼主 | 2018-8-22 20:32 | 只看该作者
ICCCCC 发表于 2018-8-22 17:46
https://bbs.21ic.com/icview-2537044-1-1.html
代码生成器,写入定时时长,点击生成代码即可。
...

代码生成器生成的贴过去用不了,是缺了什么吗?

使用特权

评论回复
5
x_linux| | 2020-4-19 17:34 | 只看该作者
生成的代码同样不行
void main()
{
/************************************系统初始化****************************************/
        WDTCCR = 0x00;                                                          //关闭看门狗
                                                  //本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程
        CLKSWR = 0x51;                                                          //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
        CLKDIV = 0x01;                                                          //Fosc 1分频得到Fcpu,Fcpu=16MHz
/**********************************相关配置初始化**************************************/
       
        P2M0 = 0x88;              //P00设置为推挽输出       
/**********************************UART配置初始化**************************************/


  Timer5Init();

         P2_0=0;
        while(1)
        {  
                P2_1 = ~P2_1;
          Delay_ms(2000);
        }
}
//定时器5初始化
//时钟频率:16.000MHz
//定时长度:20微秒
void Timer5Init(void)
{
        T5CON &= 0xCF;//1分频
        T5CON &= 0xF3;//16位自动重装
        RCAP5H = 0xFE;//重装值高8位
        RCAP5L = 0xC0;//重装值低8位
        TH5 = 0xFE;//初值高8位
        TL5 = 0xC0;//初值低8位
        T5CON &= 0x7F;//清除中断标志
        IE1 |= 0x10;       
        T5CON |= 0x02;//开启定时器
        EA = 1;
}

unsigned long int counter=0;
//T5中断服务函数
void Timer5Interrupt (void) interrupt T5_VECTOR
{

        T5CON &= 0x7F;//清除中断标志
                counter++;
        if(counter>=500)
        {
           P2_1 = 1;
                counter=0;
        }
}

使用特权

评论回复
6
lu50211| | 2020-4-27 14:28 | 只看该作者
void main()
{
/************************************系统初始化****************************************/
        WDTCCR = 0x00;                                                          //关闭看门狗
                                                  //本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程
        CLKSWR = 0x51;                                                          //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
        CLKDIV = 0x01;                                                          //Fosc 1分频得到Fcpu,Fcpu=16MHz
/**********************************相关配置初始化**************************************/
        
        P2M0 = 0x88;              //P00设置为推挽输出        
/**********************************UART配置初始化**************************************/


  Timer5Init();

         P2_0=0;
        while(1)
        {  
               // P2_1 = ~P2_1;    把这放在中断里
          Delay_ms(2000);
        }
}
//定时器5初始化
//时钟频率:16.000MHz
//定时长度:20微秒
void Timer5Init(void)
{
        T5CON &= 0xCF;//1分频
        T5CON &= 0xF3;//16位自动重装
        RCAP5H = 0xFE;//重装值高8位
        RCAP5L = 0xC0;//重装值低8位
        TH5 = 0xFE;//初值高8位
        TL5 = 0xC0;//初值低8位
        T5CON &= 0x7F;//清除中断标志
        IE1 |= 0x10;        
        T5CON |= 0x02;//开启定时器
        EA = 1;
}

unsigned long int counter=0;
//T5中断服务函数
void Timer5Interrupt (void) interrupt T5_VECTOR
{

        T5CON &= 0x7F;//清除中断标志
                counter++;
        if(counter>=500)
        {
           //P2_1 = 1;P2_1 = ~P2_1;
                counter=0;
        }
}

使用特权

评论回复
7
o88ne| | 2020-4-28 13:39 | 只看该作者

//bbs.21ic.com/icview-2537044-1-1.html
代码生成器,学到了。

使用特权

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

本版积分规则

2

主题

3

帖子

0

粉丝