智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 13589|回复: 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,基本就是这样了。

3

主题

100

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2334
QQ
威望
1508
贡献
518
兑换币
365
注册时间
2011-11-23
在线时间
154 小时
47#
发表于 2012-10-23 22:30:39 | 只看该作者
碉堡了,可以这样的,原来苦逼了
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
166
威望
120
贡献
32
兑换币
4
注册时间
2012-9-11
在线时间
7 小时
毕业学校
江西理工大学
46#
发表于 2012-10-23 09:54:43 | 只看该作者
可以啊,楼主
回复 支持 反对

使用道具 举报

0

主题

143

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1484
威望
798
贡献
436
兑换币
228
注册时间
2012-2-18
在线时间
125 小时
45#
发表于 2012-4-27 14:32:57 | 只看该作者
这样的初始化很多都还不行,I/O口的设置呢?定时器呢?还有很多要重新设定呀,主要是设置那儿不太懂
回复 支持 反对

使用道具 举报

2

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
433
威望
304
贡献
91
兑换币
44
注册时间
2009-1-13
在线时间
19 小时
44#
发表于 2010-4-20 10:55:33 | 只看该作者
很女子很弓虽
回复 支持 反对

使用道具 举报

1

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
威望
306
贡献
41
兑换币
0
注册时间
2009-12-11
在线时间
11 小时
43#
发表于 2010-4-8 23:17:53 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
威望
181
贡献
27
兑换币
0
注册时间
2010-3-14
在线时间
0 小时
42#
发表于 2010-4-6 20:59:50 | 只看该作者
我的CW5.0突然就不能下程序了,是电脑的问题,请问是不是我删了某一个文件导致不能下载程序的呢?软件我都重装了好几次了....
回复 支持 反对

使用道具 举报

1

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
威望
293
贡献
42
兑换币
18
注册时间
2010-3-25
在线时间
6 小时
41#
发表于 2010-4-6 19:44:38 | 只看该作者
...,
回复 支持 反对

使用道具 举报

0

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
威望
227
贡献
36
兑换币
2
注册时间
2009-8-8
在线时间
2 小时
40#
发表于 2010-4-6 15:28:01 | 只看该作者
不太明白也
回复 支持 反对

使用道具 举报

3

主题

35

帖子

0

精华

高级会员

Rank: 4

积分
581
威望
296
贡献
273
兑换币
16
注册时间
2010-4-3
在线时间
6 小时
39#
发表于 2010-4-6 11:31:19 | 只看该作者
嗯 学习学习.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 04:27 , Processed in 0.054414 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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