登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

发现pic16f628a的设计问题??

作者:香如故 栏目:单片机
发现PIC16F628A的设计问题??
我用PIC16F628A开发程序(2kflash)
其中用到改变pcl的值,比如查表程序addwf pcl,1时
发现程序运行时把pch清0了,结果跳到了错误地方,
最后只能把查表程序放在000h-0ffh中

是不是PIC16F628A的设计问题??

2楼: >>参与讨论
yewuyi
你的那个指令有问题把
呵呵,机器没犯错误

3楼: >>参与讨论
xieyuanbin
查表注意PCL的溢出
PCL是一个8位的寄存器,管不了14位的程序计数器那么多,如果溢出,就会跳错地方,但PIC提供了一个PCLATH来控制程序计数器的高6位,所以查表前要看你的表在哪里,有关查表的问题,有许多贴子供参考,你可在论坛搜索一下.

4楼: >>参与讨论
香如故
我原来把表放在x00位置的
我原来把表放在x00位置的,表不大,不会超过xff的,

不会溢出
PIC16F628A有问题?

谁有用过PIC16F628A的???

5楼: >>参与讨论
mmf0809
不会清零的
我用过
是应该按照xieyuanbin说的执行的

6楼: >>参与讨论
martin
看看旧帖子
在坛子里搜索一下PCLATH

7楼: >>参与讨论
mmf0809
应该是没有给
 
8楼: >>参与讨论
mmf0809
应该是没有给PCH赋值
你可以看看,程序运行时,PCH本来就是00
导致程序跳错

9楼: >>参与讨论
香如故
pch的值是不能读的,只能通过程序跳的位置观察
如果表在200h等那么pch就不是0了
按道理pch=2是不会改变的,但我的程序却变了

pch的值是不能读的,只能通过程序跳的位置观察

比如下面就调试不过
        org00h
main .......
   
    ORG 300H
TX_LOOKUP2
    MOVFW    TXNUM            ; GET CURRENT TRANSMITTER
    ADDWF    PCL,1
    RETLW    10H            ; TX0 BASE ADDRESS
    RETLW    18H            ; TX1 BASE ADDRESS

下面就可以调试通过

    ORG 000H
    goto main
TX_LOOKUP2
    MOVFW    TXNUM            ; GET CURRENT TRANSMITTER
    ADDWF    PCL,1
    RETLW    10H            ; TX0 BASE ADDRESS
    RETLW    18H            ; TX1 BASE ADDRESS
    RETLW    20H            ; TX2 BASE ADDRESS
main.....

虽然编译可以通过


10楼: >>参与讨论
systemchip
好大一个BUG呀!!
 
11楼: >>参与讨论
香如故
当TXNUM=1等时
程序会跳到错误位置
程序不返回到调用的位置


12楼: >>参与讨论
skygrow
AN556
建议到MICROCHIP网站下载AN556, 查表这个讲得最清楚了

13楼: >>参与讨论
香如故
to systemchip
有BUG就说吗,干吗只说半句,
让大家学学,我也是干开始用pic

AN556找不到啊,这个文件在MICROCHIP很难找,在哪里啊?



14楼: >>参与讨论
香如故
看来是要在表开始处设置一下pclath
感谢各位,呵呵
我想pic这点智能没有做好!呵呵,期望改进??????



15楼: >>参与讨论
yewuyi
PIC什么都做好了,还要你开发产品干什么?
不好好看手册也就罢了,还到处嚷嚷芯片设计有问题,本来不想说你的,看你这不塌实的样子,还是给你来两下“油锤灌顶”,让你好好清醒清醒。




偷偷告诉你一个秘密:这儿的斑竹对那些自以为是的“家伙”反感的不得了,有的时候甚至反感到再也不回答你的问题,呵呵。




16楼: >>参与讨论
香如故
多谢指教
手册看了是一回事
设计又是另一回事
怀疑中进步,呵呵!







17楼: >>参与讨论
大狗_lwl
是啊
多看看老帖子

参与讨论
昵称:
讨论内容:
 
 
相关帖子
M48的看门狗的时序列不对,而且喂不了,请高手看看为什么
请问C大哥,这句汇编代码用C该如何写??谢谢!
有什么传感器可以区分出人体的个数来
抄来的程序(电动车双闭环程序)
发现一个测试方法,呵呵
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号