打印

PIC16系列若对没有定义的寄存器进行操作会有后果??

[复制链接]
2466|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Ryanhsiung 于 2012-5-3 17:46 编辑

我最近准备将877A的程序移植到887上,查看了看有不同的寄存器及定义,修改了程序。
我想要减少版本,想要将改完的887程序直接烧进877A中(使用BOOTLOADER 只烧写HEX,我有看过其中的HEX执行文件基本一样)。
程序不同 ANSEL ANSELH两个寄存。


877A操作自己没有的寄存器,单片机内部会操作什么,会怎么运行,会不会触发陷阱??
沙发
yewuyi| | 2012-5-3 17:46 | 只看该作者
1、编译的时候通不过,因为编译器的头文件限制了编译完成。
2、如果直接是原来的HEX文件烧入的,只要和别的寄存器没有冲突,并且操作这些寄存器没有什么作用的话,一般不会有什么问题,多数是可以直接烧入的

使用特权

评论回复
板凳
NE5532| | 2012-5-4 16:47 | 只看该作者
一般厂家的官方说法是——请尽量不要操作他们,没有人给你打保票。

使用特权

评论回复
地板
Light_David| | 2012-5-4 18:47 | 只看该作者
既然887有操作这两寄存器,那这个代码在877A中AD模块能正确执行吗?

使用特权

评论回复
5
Ryanhsiung|  楼主 | 2012-5-5 11:43 | 只看该作者
既然887有操作这两寄存器,那这个代码在877A中AD模块能正确执行吗?
Light_David 发表于 2012-5-4 18:47

这两个是模拟 数字设置口,877A中有另一个(887无有),可以正常使用

使用特权

评论回复
6
Ryanhsiung|  楼主 | 2012-5-18 21:17 | 只看该作者
已经试过了,可以正常运行!

使用特权

评论回复
7
XIEYUANBIN| | 2012-5-18 22:10 | 只看该作者
有一些是映射到别的寄存器,有一些则没有反应。灰色的代表没有,如果标明ACCESSES.....,那就是映射到某寄存器了。一般BANK1及以后的页面总有一些寄存器可以映射到BANK0,对于汇编来讲,我们可以定义一些类似STATUS这样在每个页面都可以访问的变量以加快运算速度。

使用特权

评论回复
8
XIEYUANBIN| | 2012-5-18 22:14 | 只看该作者
已经试过了,可以正常运行!
Ryanhsiung 发表于 2012-5-18 21:17

虽然可以正常运行,但要注意的是,也许某些寄存器在这个型号上没用,但在另一个配置高一些的型号上又有用了,所以还是不要操作他们为好。有些无用的位,数据手册明确标明你必须写零或者置一,都是为了兼容别的型号以免误操作。

使用特权

评论回复
9
兰天白云| | 2012-5-21 11:30 | 只看该作者
实验可以就可以

本人2002年以前经常这么干,前提是把数据手册倒背如流

使用特权

评论回复
10
ayb_ice| | 2012-5-28 14:20 | 只看该作者
典型的非法操作

使用特权

评论回复
11
Ryanhsiung|  楼主 | 2012-5-29 20:11 | 只看该作者
本帖最后由 Ryanhsiung 于 2012-5-29 20:32 编辑
典型的非法操作
ayb_ice 发表于 2012-5-28 14:20

嘻嘻,非法操作有时也是一个很好的操作!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:道阻且长,行则将至!

64

主题

4654

帖子

14

粉丝