打印
[PIC®/AVR®/dsPIC®产品]

新手请教大家一个问题 16f886程序超过2K 不能正常工作 内详

[复制链接]
1180|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fengleigood|  楼主 | 2020-7-3 09:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FPC, pc, LED, SFP, pi
我用PIC不久  在用汇编  环境IDE8.92  16F886
配置字:内部8M震荡  其他全部关闭
程序2029条  正常工作      然后ORG H'0850'  放了一小段LED亮度程序 让三个LED以最低亮度工作  
之后再最短的那个时间循环里面 每次都CALL这段程序运行  CALL之前 有翻页到程序页面第一页

感觉怪的是 如果
                                bcf                        pclath,4
                                bsf                        pclath,3
                                call                        led_cl
就整体程序工作都不正常  好像停滞了
如果
;                                bcf                        pclath,4
;                                bsf                        pclath,3
;                                call                led_cl
屏蔽掉 不去CALL   就其他程序工作正常

我首次编译的时候  在弹出的对话框里面选择的是绝对值   不是可重定位

前辈们 谁知道有可能是我哪里弄错了呢?

使用特权

评论回复
沙发
fengleigood|  楼主 | 2020-7-3 18:26 | 只看该作者
bellstudio 发表于 2020-7-3 15:44
你现在就是觉得call有问题,你可以很容易的用一段小程序来验证你的想法。
在前2k初始化,继续在850定义你说 ...

谢谢  没搞过仿真  我了解一下看看

使用特权

评论回复
板凳
fengleigood|  楼主 | 2020-7-3 18:33 | 只看该作者
fengleigood 发表于 2020-7-3 18:26
谢谢  没搞过仿真  我了解一下看看

对了 我还测试过GOTO    先在调用处翻页 然后GOTO  执行LED程序 然后最后翻页回0页在GOTO回调用处的下一个标定点  也相同效果   好像这一趟CALL  或者GOTO  改变了什么。。。。。我不清楚 然后回来之后 再运行其他就乱七八糟

使用特权

评论回复
地板
fengleigood|  楼主 | 2020-7-4 08:34 | 只看该作者
bellstudio 发表于 2020-7-3 15:44
你现在就是觉得call有问题,你可以很容易的用一段小程序来验证你的想法。
在前2k初始化,继续在850定义你说 ...

你好 版主   我用仿真看了一下  才知道 pclath与普通寄存器一样  你装入的东西 会一直不变   如果我的CALL返回后 不马上加一条 bcf  pclath,3  那么就会在返回后继续执行程序碰到第一个GOTO 或者CALL的时候 程序跑飞了  不过奇怪的是  我这么做了之后  简单的仿真一下  看到程序似乎是在正常运行   可是烧入芯片 还是工作不正常。。。。。   我用的是单步仿真  所有定时的小循环都屏蔽跨过  这么做的 到目前好像分析不出什么原因了

使用特权

评论回复
5
wooda| | 2020-7-4 12:16 | 只看该作者
或者写个c模拟的程序,不用有实际功能,就是调用过来调用过去,然后看下编译器搞出来的代码是怎么处理这个问题的。

使用特权

评论回复
6
fengleigood|  楼主 | 2020-7-5 20:02 | 只看该作者
bellstudio 发表于 2020-7-4 13:13
其实这些问题用C来写的话就都交给编译器了

嗯嗯谢谢版主  汇编会稍微费一些脑子  不过好像效率挺高的  所有细节都自己写。。。    每段功能的程序 我都列出来所用寄存器和标志位 以及初始值    目前编起程来 到感觉还可以   等我把眼前做完  去学PICC   

另外 我很想接触一下stm32 F1系列的处理器

我的ICD坏了 哎。。疫情之前买的 还花了900多了   怎么就突然找不到芯片ID    现在一个KIT3 正再用 说能恢复程序那个 还挺贵的120块一个
请问KIT3可以做在线调试吧

使用特权

评论回复
7
fengleigood|  楼主 | 2020-7-7 23:39 | 只看该作者

好的!

使用特权

评论回复
8
fengleigood|  楼主 | 2020-7-9 08:29 | 只看该作者

版主你好  我做了一些测试 暂时没有找到症结所在    由于原来用过16f884使用超过2K的程序运行正常  我就订购了跟他一样的16f883回来测试 估计差别只在IO数量上  反正我目前项目 怎么也到不了4K  昨天测试正常  CALL 2K之外的子程序  和整体运行都正常  并不是不严谨  而是我的能力也只能达到这样了 先做项目以后再慢慢研究吧
这期间多谢你和WOODA朋友的帮助  先谢谢啦!!!

使用特权

评论回复
9
coshi| | 2020-8-4 14:09 | 只看该作者
楼主问题解决了吗

使用特权

评论回复
10
fengleigood|  楼主 | 2021-2-26 21:35 | 只看该作者
coshi 发表于 2020-8-4 14:09
楼主问题解决了吗

我换了18F 不用管程序页面的问题

使用特权

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

本版积分规则

2

主题

20

帖子

0

粉丝