智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 13810|回复: 46
打印 上一主题 下一主题

零基础写飞思卡尔HCS12X程序,PE示例

  [复制链接]

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
跳转到指定楼层
1#
发表于 2009-12-20 21:11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
其实HCS12X的时钟很简单,比起ARM,甚至是HCS08的8位MCU,就是一个PLL和BUS COLOCK之间的换算。
很多不人愿意看DATASHEET,图太多了,寄存器也是样不多一个样子,所以往往导致程序出问题。
但是,时钟,CRG这块很重要,是一切模块的基础。
那么,如果你不愿意write code,那么就generate code吧。

首先介绍一下process expert,是内嵌在codewarrior(for FSL)是的个代码生成器,但是它只能初始化,形成框架,创建中断。但是你的过程函数(procedure body)肯定是要自己写的。
基本上,所有的初始化都可以自动生成,包括很多人不愿意自己写的memory map,eeprom,中断优先级等杂复一点的问题。
总的概括来说,有如下几个方面的功能:
1 信号输入输出的自动生成和初始化;
2 信号测量功能的自动生成和初始化,包括测量脉冲,AD等;
3 定时器,看门狗。。
4 同步异步通信模块(IIC SPI SCI)
5 FLASH EEPROM操作
值得一提的是还有算法自动生成,在HCS12X里可以生成图像二进制数组。当然在CPU为DSP时,FFT,滤波等等算法也少不了。




主要的操作按上面的图123来就可以了,注意CODEWARRIOR版本要5.0的,5.0版以下的不支持XS128的PE。。。
如果还有加入其它的模块,点ADD BEAN,即可。


好了,按上面的图操作之后呢,点make,代码会自动生成。
不要纳闷生成的代码找不到,这是因为时钟代码放在_EntryPoint函数里了比main更早执行,比_Startup也早。其实在程序里0xFFFA起始的中断地址里,这个地址是复位中断地址。
代码如下:
  setReg8(MMCCTL1, 0);                  
  setReg8(DIRECT, 0);                  
  setReg8(IVBR, 255);                  
  setReg8(ECLKCTL, 64);                 
  setReg8(CLKSEL, 0);  
  setReg8(PLLCTL, 129);                /* Disable the PLL */
  setReg8(SYNR, 65);                   /* Set the multiplier register */
  setReg8(REFDV, 192);                 /* Set the divider register */
  setReg8(POSTDIV, 0);                 /* Set the post divider register */
  setReg8(PLLCTL, 193);                 
  while(!CRGFLG_LOCK) {                /* Wait until the PLL is within the desired tolerance of
  }
  setReg8Bits(CLKSEL, 128);         
  setReg8(VREGHTCL, 16);               
真正有用的配置代码就  setReg8(SYNR, 65); setReg8(REFDV, 192);两句,而PE是出于完整性和规范性考虑,生成了一堆代码。
OK,基本就是这样了。

16

主题

192

帖子

1

精华

常驻嘉宾

船长

Rank: 8Rank: 8

积分
3238
QQ
威望
616
贡献
1930
兑换币
159
注册时间
2008-12-13
在线时间
346 小时
2#
发表于 2009-12-20 23:36:45 | 只看该作者
沙发!!
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
3#
发表于 2009-12-21 09:36:57 | 只看该作者
谢谢~
回复 支持 反对

使用道具 举报

13

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
QQ
威望
300
贡献
68
兑换币
0
注册时间
2009-12-3
在线时间
5 小时
4#
发表于 2009-12-21 10:08:04 | 只看该作者
不太明白
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
5#
发表于 2009-12-21 13:25:37 | 只看该作者
支持,新手们也许可以那这个来玩玩,我觉得还是要去写写代码才有感觉。
回复 支持 反对

使用道具 举报

3

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1406
QQ
威望
336
贡献
908
兑换币
0
注册时间
2009-12-2
在线时间
81 小时
6#
发表于 2009-12-23 21:52:46 | 只看该作者
CODEWARRIOR5.0版本很难下载
回复 支持 反对

使用道具 举报

3

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
威望
272
贡献
25
兑换币
0
注册时间
2009-12-23
在线时间
14 小时
7#
发表于 2009-12-23 23:27:01 | 只看该作者
很好很强大!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
139
威望
187
贡献
22
兑换币
0
注册时间
2009-12-7
在线时间
0 小时
8#
发表于 2009-12-24 00:59:55 | 只看该作者
喵喵,大家一起努力
回复 支持 反对

使用道具 举报

5

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
456
威望
303
贡献
41
兑换币
0
注册时间
2009-8-26
在线时间
56 小时
9#
发表于 2009-12-24 13:19:09 | 只看该作者
没太懂!
回复 支持 反对

使用道具 举报

49

主题

489

帖子

0

精华

金牌会员

董事长

Rank: 6Rank: 6

积分
2370
威望
754
贡献
1130
兑换币
0
注册时间
2009-10-30
在线时间
243 小时
10#
发表于 2009-12-24 13:49:28 | 只看该作者
貌似懂一点。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 11:49 , Processed in 0.081998 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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