智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6293|回复: 15
打印 上一主题 下一主题

XS128输出比较(OC)的简单例子

  [复制链接]

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
跳转到指定楼层
1#
发表于 2009-11-13 20:01:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天一下午测试XS128的定时器模块,包括IOC和PIT,感觉飞思这个系列的定时器做得用起来有些不方便,Reference Manuel里说得也不是太清楚,尤其是输出比较的用法,在论坛里逛了一大圈也没明白……后来调通了这里贴出我的代码供初学者参考。

#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */

#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

#pragma CODE_SEG __NEAR_SEG NON_BANKED

unsigned int counter;

void interrupt 8 Compare_ISR(void)
{
  if( counter == 50000 ) //Although enormous,PORTB flashes very fast at 16MHz
  {
    PORTB = ~PORTB; // Toggle PORTB Every 50000 times
    counter = 0;
  }
  counter += 1;
  TFLG1 = 0x01; // Clear T0 interrupt flag
}

void SetBusCLK(void) /* 16MHz */
{   
  CLKSEL = 0x00; /* disengage PLL to system */
  PLLCTL_PLLON = 1; /* turn on PLL */
  SYNR = 0x01;
  REFDV = 0x81;
  POSTDIV = 0x00;
  _asm(nop); /* BUS CLOCK=80M */
  _asm(nop);
  while( !(CRGFLG_LOCK == 1) ); /* when pll is steady ,then use it */
  CLKSEL_PLLSEL =1; /* engage PLL to system */
}

void OutputCompare_Init(void)
{
  TIE = 0x00; /* Disable all channel interrupt */
  TIOS = 0x01; /* channel 0 set to Output Compare */
  TSCR1 = 0x90; /* Enable Timer; */
                         /* Timer interrupt flag can be cleared(channel 0) */
  TSCR2 = 0x07; /* Prescale Factor = 128 */
  TC0 = 0xFF00;
  TIE = 0x01; /* Enable channel 0 interrupt */
}

void Port_Init(void)
{
  DDRB = 0xFF;
  PORTB = 0xFF;
}

void main(void)
{
  /* put your own code here */
  
  DisableInterrupts;
  
  SetBusCLK();
  Port_Init();
  OutputCompare_Init();
  
  counter = 0;
  
  EnableInterrupts;
  
  for(;;)
  {
    _FEED_COP();
  }  
  /* wait forever */
  /* please make sure that you never leave this function */
}

22

主题

518

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
6442
QQ
威望
943
贡献
5041
兑换币
99
注册时间
2008-2-26
在线时间
229 小时
2#
发表于 2009-11-14 10:36:57 | 只看该作者
回复 1# librae8226


    感谢与大家分享
回复 支持 反对

使用道具 举报

4

主题

167

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
威望
347
贡献
47
兑换币
2
注册时间
2008-12-20
在线时间
21 小时
3#
发表于 2010-4-17 21:26:48 | 只看该作者
谢谢了
回复 支持 反对

使用道具 举报

0

主题

302

帖子

0

精华

高级会员

Rank: 4

积分
591
威望
475
贡献
62
兑换币
0
注册时间
2010-3-19
在线时间
27 小时
4#
发表于 2010-4-18 14:31:19 | 只看该作者
谢谢了  我搞了几天了
回复 支持 反对

使用道具 举报

0

主题

302

帖子

0

精华

高级会员

Rank: 4

积分
591
威望
475
贡献
62
兑换币
0
注册时间
2010-3-19
在线时间
27 小时
5#
发表于 2010-4-18 14:55:50 | 只看该作者
大概看了一下  还是有的不明白啊
回复 支持 反对

使用道具 举报

4

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
499
QQ
威望
364
贡献
87
兑换币
20
注册时间
2009-12-26
在线时间
24 小时
6#
发表于 2010-4-18 15:28:39 | 只看该作者
看看,学学!
回复 支持 反对

使用道具 举报

22

主题

175

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4116
威望
1555
贡献
1381
兑换币
270
注册时间
2011-4-28
在线时间
590 小时
7#
发表于 2011-8-26 14:28:06 | 只看该作者
这个就不太清楚了,还没这样用过
回复 支持 反对

使用道具 举报

13

主题

183

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1141

热心会员奖章活跃会员奖章优秀会员奖章

威望
666
贡献
335
兑换币
143
注册时间
2011-4-2
在线时间
70 小时
8#
发表于 2011-8-29 19:52:55 | 只看该作者
千千
回复 支持 反对

使用道具 举报

4

主题

158

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1646
威望
818
贡献
378
兑换币
159
注册时间
2011-3-11
在线时间
225 小时
9#
发表于 2011-10-7 22:05:23 | 只看该作者
飞思卡尔控制完整程序
回复 支持 反对

使用道具 举报

6

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
324
威望
214
贡献
72
兑换币
0
注册时间
2012-2-29
在线时间
19 小时
毕业学校
河南理工大学
10#
发表于 2012-2-29 16:34:53 | 只看该作者
谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 11:32 , Processed in 0.214177 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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