打印
[其它应用]

SH79F9202U定时器2 寄存器配置

[复制链接]
455|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-6-4 08:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式






















定时器2

#include "SH79F9202.h"
void INT_TIMER2(void) interrupt 5  
{
TF2 = 0; // 清除中断标志
P0_6 = !P0_6; // 翻转输出
}


void Delays(int del)
{
        while(del--);
}


//OSC = 24M
//sysclk OSC / 2 = 12M
void main(void)
{
        CLKCON = 0x08;        //【打开HFON】内部24MHz RC振荡器
        Delays(2000);         //至少等待振荡器预热时间      
        CLKCON |= 0x04;       //【选择FS】24M/8M Hz为OSCSCLK
        CLKCON |= 0x20;       //【分频器CLKS[0:1]】fSYS = fOSCS/2

        //12M/12 = 1M = 1us(T=1/f)  定时20ms
        P0CR |= 0X40; // P0_6 GPIO设置为输出模式

        T2CON = 0;                                                        // 停止定时器2
        T2MOD = 0x00;           //  TCK = 12/12 = 1M    系统时钟的1/12|P1.0时钟输入或IO端口|递增计数
       
        //初始值 45535   2^16=65536   
        TL2 = 45535 & 0x00FF;    // 取低位(223) = 1011 0001 1101 1111 & 0000 0000 1111 1111   
        TH2 = 45535 >> 8;        // 取高位(177)  
        //重载值 45535
        RCAP2L = 45535 & 0x00FF;    //重载值
        RCAP2H = 45535 >> 8;
        // 自动重载值=65536-45535=20001
       
        IEN0 |= 0x20;          //开中断  定时器2溢出中断
        T2CON |= 0x04;         //开始定时器2 即寄存器0000 0100
        EA = 1;                                                                // 开启总中断
        while(1);
}



代码选项 配置如下









————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Naiva/article/details/139102779

使用特权

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

本版积分规则

1498

主题

14377

帖子

8

粉丝