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

请PIC的大拿们答疑解惑

[复制链接]
1115|6
手机看帖
扫描二维码
随时随地手机跟帖
kingTek|  楼主 | 2018-6-30 11:50 | 显示全部楼层 |阅读模式
本帖最后由 麦小播 于 2019-10-15 16:38 编辑

近半年来切入PIC的使用,用的是16F876A,感觉我原来搞单片机正常的线性地址空间等思维被扭曲,记录了

一下,问题多达20多处,且还在不断发现新的问题。

暂且不说多字节减法,“bank”切换 之类,

先陈述一个非常明显的诡异现象,暂且不敢说是bug,问题如下:

CCP1,CCP2捕获中断,在不需要时,即使代码中有语句关断CCP1,CCP2中断,但只要RC1~2有输入信号,

程序也能进入中断,

而维持此时的设置,仅仅将RC1~2设置为输出模式时,情况就又变了,这时程序就无法进入CCP1,CCP2中断

何故?
yewuyi| | 2018-7-2 18:05 | 显示全部楼层
用PIC就不能用51的那种思维方式,PIC比较有个性。

个人猜测:
1、你设置为输出模式了,所以捕获被管脚的外部信号锁定了。
2、你的中断函数有问题,PIC的中断函数绝对不能按照51那种写法,这种单中断入口的芯片,你进入中断函数后必须将中断容许位和中断标志位结合起来判断到底是哪个中断源发生了,绝对不能只判断中断标志位,否则的话你就别用PIC了。
3、PIC在一个IO口上往往复用了很多模块,请将不需要的模块完全禁止掉,否则出错那就是你个人没设置正确的问题了

使用特权

评论回复
yewuyi| | 2018-7-2 18:06 | 显示全部楼层
876已经是老的掉牙的型号了,请至少用PIC16F19XX系列的,当然也可以用最新的PIC16F18XXX系列。

另外,建议用C语言把,这样BANK就不是问题了

使用特权

评论回复
评论
kingTek 2019-10-16 09:07 回复TA
C语言就没有切bank的代码了,就不用费这个周期了? 简直让我呵呵,哈哈! 
kingTek|  楼主 | 2018-10-1 15:35 | 显示全部楼层
好久没来照看一下,
楼上的“老大”回答没有啥信息量,
我说的问题依然摆在那里,玩pic的也可以复制粘贴一下我说的问题。

这还是万般扭曲之其一。

总的感觉pic的芯片远远不象其吹嘘的那么好用,

一个久经历练的业者的作品完全不是像PIC的芯片这个样子,这货完全仅仅能用而已,没有任何真正高明之处。

本帖结案吧,争论没有意义,只是给各位提个醒,

不想浪费时间了。

使用特权

评论回复
shizaigaole| | 2018-10-5 23:11 | 显示全部楼层
PIC还是很好用的,楼主的问题应通过学习,通过看厂家资料,仔细全面的看中断寄存器相关的设置,和模块相关寄存器设置,
该自解决,要是指望会点51就能生搬硬套用好PIC那是不可能的。

会点51,不学习PIC,就能用好PIC,这种期望,自己不觉得是十分不合理的吗???

使用特权

评论回复
yewuyi| | 2018-10-12 14:20 | 显示全部楼层
只能是楼主自以为怎么着,但实际。。。。。。

使用特权

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

本版积分规则

33

主题

667

帖子

11

粉丝