《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

MC68HC908JL8匠人应用手记4
程序匠人 发表于 2005-9-11 22:02:00  阅读全文 | 回复(0) | 引用通告 | 编辑

MC68HC908JL8

匠人应用手记

17.如何产生LST文件

系统缺省时不会产生LST文件.如果需要查看LST文件,可以:

1.     选择菜单[edit]->[P&E ICD SETTINGS]

2.     在弹出窗口中选择[TARGET]->[ASSEMBLER FOR ……](汇编);或[COMPILER FOR ……](C)

3.     在窗口右边点击[options]

 

4.     在新弹出窗口中切换到[OUTPUT]页

5.     [generate listing file]前打勾即可

 

 

18.工程文件的组织方法

huangxd 发表于 2005-7-11 10:28 侃单片机   

 

一个大的单片机程序往往包含很多模块,我是这样组织的

1。每一个C源文件都要建立一个与之名字一样的H文件,里面仅仅包括该C文件的函数的声明,其他的什么也不会有,比如变量的定义啊等等不应该有。

 

2。建立一个所有的文件都要共同使用的头文件,里面当然就是单片机的管脚使用的定义,还有里面放那些需要的KEIL系统的头文件,比如 include<reg52.h>,#i nclude<absacc.h>等等,把这个文件命名为common.h,或者干脆就叫main.h

 

3,每个C源文件应该包含自己的头文件以及那个共同的使用的头文件,里面还放自己本文件内部使用的全局变量或者以extern定义的全局变量

 

4。主文件main.c里面包含所有的头文件包括那个共同使用的文件,main.c里面的函数可以再做一个头文件,也可以直接放在文件的开头部分声明就可以了,里面一般还有中断服务程序也放在main.c里面

 

5。对于那些贯穿整个工程的变量,可以放在那个共同的使用的头文件里面,也可以用extern关键字在某个C源文件里面定义,哪个文件要使用就重复定义一下

 

6.建立工程的时候,只要把C源文件加到工程中,把H文件直接放到相应的目录下面就可以了,不需要加到工程里面。

 

19.关于MON08

MON08中疑惑的问题?

我看可很多freescale的单片机的datasheet,MONitor ROM一章中会提到有两种进入monitor rom的方式,一种为normal方式,一种为forced方式.forced方式较为简单,不需要占用太多的I/O,不需要一个高电压,但是它需要一个特殊的条件,就是

If $FFFE and $FFFF contain $FF

其中$FFFE and $FFFF 是复位时的地址,也就是说只有在复位向量中包含FFFF,FFFF时在能进入这种方式.我对这一点不是很理解.它的意思是不是在芯片中没有程序的时候.才能进入forced mode.

因为在上电复位的时候,$FFFE and $FFFF 中的数据会装入程序计数器中,我想问下,$FFFE and $FFFF 中在芯片为空的时候是什么数据?在芯片非空的时候是什么数据?

----------------------------------------------

发贴时间: Jul 21 2005 9:15AM ||          

 

strongchen    

 头衔:版主

对,$FFFE$FFFF就是复位中断的矢量地址。当芯片为空时,复位矢量也为空,其中的数据为$FFFF。当芯片复位后,监控程序会检测复位矢量的值,如果发现数据为空(即为$FFFF),监控程序会强制启动,使芯片进入监控模式,即所谓的强制方式(forced)。

----------------------------------------------

发贴时间: Jul 21 2005 9:56AM ||         

 

天涯倦客    

那这种烧写方式意义好像不大啊,只有是空芯片才能进入监控方式.如果单只有这种方式,那好像就是一次性烧写了.

----------------------------------------------

发贴时间: Jul 21 2005 10:16AM ||         

 

strongchen    

 头衔:版主

所以还有一种正常方式(normal)。当芯片不空时,通过特殊电平的设置,仍可以进入监控模式。

----------------------------------------------

发贴时间: Jul 21 2005 11:34AM ||         

 

天涯倦客    

谢谢版主,这个我知道,但是这种方式需要占用一些I/O,不过现在也在凑合着用.i/o口尽量复用吧

----------------------------------------------

发贴时间: Jul 21 2005 11:45AM ||         

 

strongchen    

 头衔:版主

只是复位时需要几个口线的电平设置。进入监控状态后,只需一个口进行通讯,其余的口线都被释放,可用回正常功能。

----------------------------------------------

20.mon08的仿真模式的断点

黄果树 发表于 2005-8-1 00:24 侃单片机 ←返回版面   

code warrror功能强大,但是感觉界面没有PICMPALB友好,特别是仿真时另外弹出一个窗口,不能在此窗口修改源代码,编译.!

听说code warrror软仿真功能强大,一直没有琢磨过,期望那天有高手出马,写本教程!

mon08的仿真模式,断点只能设一个,占用IO,没有经验的很难连接上,连接上也会很容易死掉,必须复位..还不如一些小***的mcu(也用片上仿真).目前我用过的最好的片上仿真的8bit mcuzilog的新款flash mcu,专用一个DBG口仿真烧录,一连就上.百发百中:)

21.关于MON08调试的频率

由于强制通讯波特率为FBUS/256,因此总线频率受到主机软件允许的标准波特率的限制

当晶振=9.8304MHZ,内部总线=9.8304/4=2.4576MHZ.

 

这里会有一个问题,即调试时的工作频率和产品的实际工作频率不一致

 

22.关于运算中需要注意的问题

当不同长度的变量进行运算时,要特别当心,避免某些变量被截肢

//比如:

unsigned long aaa;

unsigned int bbb;

unsigned int ccc;

        bbb=1000    ;

        ccc=2000;

//下面的指令计算后,aaa并没有如预期的变成20000000,而是变成了33920,原因是高位被裁减掉了

        aaa=bbb*ccc;

//改成下面的指令后,结果正确

        aaa=ccc;

        aaa=aaa*bbb;

23.PLL功能的启动方式

 

//--------------------------------------------------------

//启动PLL功能(8MHZ)

//

//总线频率与参数值表(外部晶振=32.768KHZ)

//--------------------------------------------------------

void PLL_ON(void)

{

       PCTL = 0 ;                          //设置PCTL,关闭中断

 

       PCTL_PRE = 0 ;                         //P

       PCTL_VPR = 2 ;                         //E

       PMS = 0X03D1 ;                        //N

       PMRS = 0XD0 ;                         //L

       PMDS = 1 ;                         //R

 

       PCTL_PLLON = 1 ;                    //启动VCO时钟

       PBWC_AUTO = 1 ;                            //设置工作模式自动

       while(!PBWC_LOCK) ;                //等待PLL稳定

       PCTL_BCS = 1 ;                         //选择PLL信号为系统时钟源

 

       asm nop ;

       asm nop ;

}

 

相关连接:ICS08 FREESCALE(Motolora)单片机仿真编程器

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [