标题: 关于单片机定时器初始化代码看不懂,先谢谢,求告知 [打印本页]

作者: 永恒动力    时间: 2021-3-29 15:41
标题: 关于单片机定时器初始化代码看不懂,先谢谢,求告知
/**  
   系统默认的时钟频率设置
   晶振:fosc=12MHZ
   系统时钟:fcclk=fosc *5=60MHZ  晶振的5倍频
   VPB时钟:fpclk=fcclk/4=15MHZ  fcclk的4分频
**/
  /* 将TIMER0 设置成1s 定时 */
  TOPR=99; /* 对pclk进行100分频,TC计数频率为150000HZ
  TOMCR=Ox03;/*TC 和MR 匹配时产生中断,TC复位 */
  TOMRO=150000;/*匹配值150000,1s定时*/
  TOTCR=Ox03;/* 启动并复位TOTC */
  TOTCR=OX01;/* 启动TO */
    问题1:上面的五行代码等于号右边的设置的数值我看不懂,还请大神解释下?
    问题2:TIMERO设置成2s定时,要如何设置了?
       先谢谢,求告知!

作者: man1234567    时间: 2021-3-29 17:20
不懂too,不过可以百度。以下供参考:
/* 系统设置, Fosc、Fcclk、Fcco、Fpclk 定义*/
#define Fosc 12M //晶振频率,10MHz~25MHz,应当与实际一致
#define Fcclk (Fosc * X ) //系统频率,必须为Fosc 的整数倍(1~32),且<=60MHZ
#define Fcco (Fcclk * Y ) //CCO 频率,必须为Fcclk 的2、4、8、16 倍,范围156MHz~320MHz
#define Fpclk (Fcclk / Z ) * 1 //VPB 时钟频率,只能为(Fcclk / 4)的1 ~ 4 倍
通常只需要设置Fosc 即可。.......

作者: 永恒动力    时间: 2021-3-30 08:51
man1234567 发表于 2021-3-29 17:20
不懂too,不过可以百度。以下供参考:
/* 系统设置, Fosc、Fcclk、Fcco、Fpclk 定义*/
#define Fosc 12M  ...

百度上真是没有,我都查过了 !
作者: datouyuan    时间: 2021-3-30 09:21
/* 将TIMER0 设置成2s 定时 */
  TOPR=199;
  TOMCR=Ox03;
  TOMRO=150000;
  TOTCR=Ox03;
  TOTCR=OX01;

作者: datouyuan    时间: 2021-3-30 09:22
/* 将TIMER0 设置成2s 定时 */
  TOPR=99;
  TOMCR=Ox03;
  TOMRO=300000;
  TOTCR=Ox03;
  TOTCR=OX01;
不要那么死板,要学会举一反三。
作者: 永恒动力    时间: 2021-4-2 09:20
datouyuan 发表于 2021-3-30 09:22
/* 将TIMER0 设置成2s 定时 */
  TOPR=99;
  TOMCR=Ox03;

TOPR=99,是什么意思?求大神告知,谢谢
作者: 名字不是重点    时间: 2021-4-2 09:37
低级错误!是“0”不是“O”
   TOPR=99; /*从单片都是从0开始计数,所以实际上是99+1
  TOMCR=0x03;/*看你的芯片手册,TOMCR的bit1/bit0同时置1
  TOMRO=150000;/*这个就是预设值,从15000开始计算,减数计算?
  TOTCR=0x03;/* 启动并复位TOTC */
  TOTCR=0X01;/* 启动TO */这2条一样的寄存器,参数为什么不同?

作者: 永恒动力    时间: 2021-4-8 10:06
名字不是重点 发表于 2021-4-2 09:37
低级错误!是“0”不是“O”
   TOPR=99; /*从单片都是从0开始计数,所以实际上是99+1
  TOMCR=0x03;/* ...

你好大神,要是设置成2s定时该如何设置了
作者: 永恒动力    时间: 2021-4-11 10:38
datouyuan 发表于 2021-3-30 09:22
/* 将TIMER0 设置成2s 定时 */
  TOPR=99;
  TOMCR=Ox03;

你说的对,非常感谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1