定时器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
|