380091044 发表于 2024-5-21 15:41:40

定时器T1 初始化#define Timer1_HZ 10000UL//10KHz是什么意思?






#define MAIN_Fosc                11059200//定义主时钟
#define Timer1_HZ10000UL//10KHz//此处,这么定义,是啥意思?
void Timer1_Init(void)
{
        AUXR |= 0x40;//定时器时钟1T模式
        TMOD &= 0x0F;//设置定时器模式
        TL1 =65536 -(MAIN_Fosc / Timer1_HZ);
        TH1 =65536 -(MAIN_Fosc / Timer1_HZ) >> 8;
        TF1 = 0;//清除TF1标志
        TR1 = 1;//定时器1开始计时
}

xiangzichen 发表于 2024-5-21 16:07:35

定时频率 10K,也就是1秒钟 中断 10000次.

Yim_Hom 发表于 2024-5-21 16:36:24

#define Timer1_HZ10000UL//10KHz//此处,这么定义,是啥意思?

#define是宏定义,宏定义的用法应该知道吧?
Timer1_HZ是名,对应定时器1初始化函数里的Timer1_HZ
10000UL可以根据你的需要随时修改,如果在一个地方用,那可以不用宏定义,
如果在多个地方用,只修改10000UL,就实现了全部修改。
UL的意思表示unsigned long,不然编译器就没法按照你的意图处理了。
//是注释,也就是10K赫兹,10000UL对应10KHz

380091044 发表于 2024-5-22 08:17:53

Yim_Hom 发表于 2024-5-21 16:36
#define Timer1_HZ10000UL//10KHz//此处,这么定义,是啥意思?

#define是宏定义,宏定义的用法应该知道 ...

感谢老师指点,我想定义1ms中断一次,这里的10KHz应该为多少??

Yim_Hom 发表于 2024-5-22 12:05:37

周期是频率的倒数啊,所以1/1000啊

380091044 发表于 2024-5-22 17:40:00

Yim_Hom 发表于 2024-5-22 12:05
周期是频率的倒数啊,所以1/1000啊



理解了,是我计算方法有问题,感谢老师。

Yim_Hom 发表于 2024-5-22 23:27:41

380091044 发表于 2024-5-22 17:40
理解了,是我计算方法有问题,感谢老师。

不客气,称不上老师。
可以多看看手册,不懂的多百度多问

380091044 发表于 2024-5-23 08:17:24

Yim_Hom 发表于 2024-5-22 23:27
不客气,称不上老师。
可以多看看手册,不懂的多百度多问

细节的计算一直对不上,让我迷惑,就一个点,
页: [1]
查看完整版本: 定时器T1 初始化#define Timer1_HZ 10000UL//10KHz是什么意思?