智能车制作

标题: 零基础写飞思卡尔HCS12X程序,PE示例 [打印本页]

作者: whut_wj    时间: 2009-12-20 21:11
标题: 零基础写飞思卡尔HCS12X程序,PE示例
其实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,基本就是这样了。
作者: 小当    时间: 2009-12-20 23:36
沙发!!
作者: librae8226    时间: 2009-12-21 09:36
谢谢~
作者: lgx-mm    时间: 2009-12-21 10:08
不太明白
作者: chenrunshe_007    时间: 2009-12-21 13:25
支持,新手们也许可以那这个来玩玩,我觉得还是要去写写代码才有感觉。
作者: 小平    时间: 2009-12-23 21:52
CODEWARRIOR5.0版本很难下载
作者: 勇者无惧    时间: 2009-12-23 23:27
很好很强大!
作者: daixueyan    时间: 2009-12-24 00:59
喵喵,大家一起努力
作者: lj00000lj    时间: 2009-12-24 13:19
没太懂!
作者: 法拉利    时间: 2009-12-24 13:49
貌似懂一点。。。
作者: boa314704442    时间: 2009-12-24 20:32
还是不太明白、、我用C还是可以啊!
作者: jakerroo    时间: 2009-12-24 23:01
楼主你有特殊功能的beans吗??呵呵,要专业版的,可惜啊。。。。
作者: 小怪兽AK    时间: 2009-12-24 23:30
我菜鸟一个 慢慢看了 谢谢了
作者: DEMOK    时间: 2009-12-25 13:24
学习哈。。。
作者: DEMOK    时间: 2009-12-25 13:24
好贴,就得多回几次
作者: wangbinghong    时间: 2009-12-26 14:54
知道了
作者: asdhengasd    时间: 2009-12-26 22:50
不是很懂...
作者: fsker2009    时间: 2009-12-27 09:36
好像muc的IDE啊!!!挺好~~
作者: anjiayu    时间: 2009-12-27 15:13
还没接触过pe,好像很好用!
作者: hh200678    时间: 2009-12-27 16:02
顶个2
作者: zhinengche.com    时间: 2009-12-27 21:49
共同努力
作者: 这不关我事    时间: 2009-12-27 23:13
我需要这个,看看先
作者: feiying    时间: 2010-1-10 15:04
不太懂
作者: gulinlong    时间: 2010-1-13 18:19
似乎有点明白!
作者: God_bin    时间: 2010-1-14 12:30
顶下~看看慢慢理解吧
作者: God_bin    时间: 2010-1-14 15:14
有没哪位高手分享下PE编写的具体实例程序?具体感受下便于理解,感谢~
作者: 王怀玉    时间: 2010-1-14 22:05
很有用的资料啊
作者: firs648437    时间: 2010-3-13 20:30
很好很强大
作者: 大水杯    时间: 2010-3-16 18:02

作者: jiangshou543    时间: 2010-3-16 21:35
不清楚
作者: liukexin    时间: 2010-3-16 22:47
好像不太明白
作者: langtao    时间: 2010-3-17 00:00
初学觉得不要依赖这种方法,这样对MCU了解不深刻。当然你了解了可以偷懒一下是好事!这是我的个人看法!
作者: lfllcy    时间: 2010-3-17 15:05
学习中 感谢!
作者: fifa_ke    时间: 2010-3-24 21:06
很好 谢谢
作者: wdlpt    时间: 2010-3-24 21:14
knakan
作者: 劲之旅    时间: 2010-4-3 11:53
0了
作者: xiahua1587    时间: 2010-4-3 20:12
没必要吧??
作者: qiuxinhangll    时间: 2010-4-3 23:15
加油
作者: libinchenglbc    时间: 2010-4-6 11:31
嗯 学习学习.
作者: wenjianjian    时间: 2010-4-6 15:28
不太明白也
作者: loveon4    时间: 2010-4-6 19:44
...,
作者: 行者无疆_1987    时间: 2010-4-6 20:59
我的CW5.0突然就不能下程序了,是电脑的问题,请问是不是我删了某一个文件导致不能下载程序的呢?软件我都重装了好几次了....
作者: jession4    时间: 2010-4-8 23:17

作者: xyz2782350    时间: 2010-4-20 10:55
很女子很弓虽
作者: 笑尸_花    时间: 2012-4-27 14:32
这样的初始化很多都还不行,I/O口的设置呢?定时器呢?还有很多要重新设定呀,主要是设置那儿不太懂
作者: 枫叶飘泊    时间: 2012-10-23 09:54
可以啊,楼主
作者: 素衣轻风    时间: 2012-10-23 22:30
碉堡了,可以这样的,原来苦逼了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2