SN8F570310——TIM
TIM2
#include "Equ.h" /* 硬件: P2.4 */ void InitT0(void) { P2M |= 0X10; //输出模式 P2 |= 0X10; //输出高平 TCON0 = 0x40; //F EXT0 / 8 T0外部8分频 TMOD = 0x06 ; //8位重装 F Timer0 = Fosc / T0RATE; // T0 inital value = 256 - (50us*32MHz/8) = 0X38 ==== 256 - (定时 / 每位时间(1/(32MHZ/8))) = 装载位数 TH0 = 0x38; TL0 = 0x38; TR0 = 1 ; //Enable T0 ET0 = 1 ; //Enable T0 INT } void T0Interrupt(void) interrupt ISRTimer0 { if(tim0 == 0){ P2 &= ~0X10; //输出低平 tim0 = 1; }else{ P2 |= 0X10; //输出高平 tim0 = 0; } }
测试:
50ms
笔记:
1.频率与时间:
Hz —— s
KHz —— ms
MHz —— us
2.八位自动装载时间计算:
装载位数 = 256 - (定时 / 每位时间(1/(32MHZ/8)))