micchip产品出厂测试就是这样做的的么?

2020-02-10 08:37发布

初次使用PIC单片机就发现一个大大的bug:
pic的型号是16F616,如果对RC4进行写操作,则不管RC1端口锁存器之前写入的是1或者是0,此时RC1管脚都会变成输出低电平。程序如下
////////////////////////////////////////////////////////////////////////////////////
# include        <pic.h>
void main()
{       
        //将端口设为输出
        TRISC1=0;
        TRISC5=0;
                       
        RC1=1;                                // turn off the output
        RC5=1;
        while(1)
                  {
                NOP();
                }
               

}
/////////////////////////////////////////////////////////////////////////////////
我弄了一个晚上,电路没发现有任何问题,但是这对一个端口的操作会影响另一个端口的输出现象实在是荒唐,单片机出厂前难道没有做过完整测试么?这样的低级bug未免有损micchip作为单片机大厂的声誉。
哪位兄弟有用过这款16F616的,给我指点一下,是否有办法克服这个问题呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
zml2006
1楼-- · 2020-02-11 04:09
用汇编语言试试呢
pear
2楼-- · 2020-02-11 08:12
RC1=1; // turn off the output  和 RC5=1; 之间放一句Nop()呢?
-- 另外,是microchip。
albert_w
3楼-- · 2020-02-11 12:00
 精彩回答 2  元偷偷看……
headwolf_83
4楼-- · 2020-02-11 14:24
对端口送1和清0的都属于读修改写指令。另外A口是模拟口,无论如何,端口要设置成数字口。否则虽然输出是最大的设置,就很容易出现读修改写会出现的问题。RC口也是AD口,同样要设置。
guantingwei
5楼-- · 2020-02-11 17:52
呵呵

如果不是pic的初学者,不知道有没有看过张明峰的大作。
guantingwei
6楼-- · 2020-02-11 21:34
PIC对涉及到对单个引脚操作的指令,都是由读改写完成的,
所以对IO操作这一点,AVR的结构还是很不错的,输入输出都有单独的寄存进行操作,无论如何不会出现类似的情况。

一周热门 更多>