搜索
bottom↓
回复: 9

高手过来看看为什么会出错

[复制链接]

出0入0汤圆

发表于 2009-12-19 21:25:05 | 显示全部楼层 |阅读模式

(原文件名:QQ截图未命名.png)

出0入0汤圆

 楼主| 发表于 2009-12-19 21:58:37 | 显示全部楼层
最简单的程序也出错



(原文件名:QQ截图未命名2.png)

出0入0汤圆

 楼主| 发表于 2009-12-19 22:07:08 | 显示全部楼层
什么东西,改成static bit ISB0 @ PORTAIT(TRISB,0);就可以,
怎么TRISB0不行呢,我只是为了好记点才这么写,居然不行,

另外p0=!p0,p0=~p0,都是不正确的写法,

                   p0=1;
                delay(1000);
                p0=0;
                delay(1000);
这样写就行,超级费解啊!!!!!!!!!!!!!!

出0入0汤圆

发表于 2009-12-20 00:08:11 | 显示全部楼层
在PIC中,TRISB0等于一个关键字,不能再次定义它。
在PIC10/12/16等中端的8位MCU中 “TRISB0 = 0;”就是给RB0引脚设置为输出。而pic18及PIC24等MCU要实现上述同样功能的C代码程序是 TRISBbits.TRISB0=0;

出0入0汤圆

发表于 2009-12-20 00:59:24 | 显示全部楼层
楼主说的这种static bit ISB0 @ PORTAIT(TRISB,0)语句我一直没用过,仔细看了一下估计大体意思是把TRISB的第0个位定义为ISB0。
不知道我说的是不是对的。
如果是这个意思这种语句在51的C里比较好用,但在PIC里用那是多此一举,因为PICC的头文件已经给你定义好了TRISB0还有RB0,直接对其赋值操作即可你可以找到HT-PIC的安装目录,找一下include目录那里有各款单片机的头文件。

另外,你说的p0 = !p0;之类的也是可以使用的,如图我用的是MPLAB8.30自带的PICC9.60编译16F886的程序:
看红圈里的程序

(原文件名:TEMP.JPG)

我经常拿这个来写信号输出,实在不行就嵌入汇编,就是红框下面的两句话,效果同等。
你好好看看具体问题出在哪里。

出0入0汤圆

 楼主| 发表于 2009-12-20 08:50:07 | 显示全部楼层
多谢楼上,其实我也觉得那些位定义语句是多余的,只不过先照着书上写写。。取反语句我再试试看

出0入0汤圆

发表于 2009-12-21 20:54:43 | 显示全部楼层
#define  中的参数比特bit   不能用

出0入0汤圆

发表于 2009-12-22 09:27:37 | 显示全部楼层
"怎么TRISB0不行呢"

take out a dictionary and understand what the compiler was trying to tell you through the error message: "qualifiers redeclared"

出0入0汤圆

发表于 2009-12-22 20:39:21 | 显示全部楼层
一般位取反操作我都采用 RB0^=1;这种结构
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 00:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表