智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1709|回复: 2
打印 上一主题 下一主题

飞思卡尔定时器问题

[复制链接]

5

主题

14

帖子

0

精华

注册会员

Rank: 2

积分
187
威望
135
贡献
42
兑换币
0
注册时间
2012-4-19
在线时间
5 小时
跳转到指定楼层
1#
发表于 2012-7-8 12:09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
飞思卡尔定时器怎么计算定时时间,比如要定时1s,怎么写?下面程序定时是多少?
/*--------------------------------------------------*/
/*芯片型号:MC9S12XS128 LED跑马灯测试程序            */                        
/*    功能:LED测试程序                              */                           
/*     程序由安阳创想电子科技编写                    */
/*淘宝店铺:www.shop34763529.taobao.com              */
/*    电话:13523332693                              */
/*      QQ:262342506                                */
/*    飞思卡尔系统的处理器为:  MC9S12XS128          */
/*     AVR系统的晶振频率:  24 Mhz                   */
/*---------------------------------------------------*/
#include <hidef.h>      
#include <MC9S12XS128.h>     
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"



int counter;



void TimerOverflow(void) {

  while (TCNT != 0x0000);
  while (TCNT == 0x0000);
  counter++;   
  if (counter == 8) PORTB = 0x7e; /* LED亮 */
  if (counter == 7) PORTB = 0xbd;
  if (counter == 6) PORTB = 0xdb;
  if (counter == 5) PORTB = 0xe7;
  if (counter == 4) PORTB = 0xe7;
  if (counter == 3) PORTB = 0xdb;
  if (counter == 2) PORTB = 0xbd;
  if (counter == 1) PORTB = 0x7e;
}
/*时钟初始化*/

void Initial(void)      //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)

{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz

  REFDV=1;           //总线时钟=48/2=24MHz

  SYNR=2;

  while(!(CRGFLG&0x08));

  CLKSEL=0x80;

}
void main(void)
{
  Initial();
  TSCR1 = 0x80; /* 打开定时器 TCNT */
  TSCR2 = 0x07; /* TCNT 开始计数 */
  counter = 0;

  DDRB=0xff; /* PTB 输出 */
  PORTB=0xff;  /* LED关闭 */
  asm{
  nop
  }
  for (;;)
  {
    TimerOverflow();
    if (counter >= 8) {
         counter = 0;
         TSCR2 = 0x07;  
    }
  }
}


0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
105
威望
85
贡献
20
兑换币
0
注册时间
2012-7-8
在线时间
3 小时
毕业学校
安徽工业大学
2#
发表于 2012-7-8 13:22:35 | 只看该作者
频率太高了,设为8M就行了
回复 支持 反对

使用道具 举报

18

主题

423

帖子

0

精华

知名人物

我是特种兵

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
22179

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章

QQ
威望
10198
贡献
8807
兑换币
5678
注册时间
2011-9-11
在线时间
1587 小时
3#
发表于 2012-7-8 14:34:39 | 只看该作者
其实,不管频率多高都可以定时,48MHz不算高,莫非,你想降低频率和处理速度来换取低功耗{:soso_e144:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 01:31 , Processed in 0.052649 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表