打印

如何使用INDF

[复制链接]
14465|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
loveme99|  楼主 | 2011-2-14 00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在PICC中使用INDF寄存器为什么提示错误,在编程过程中FSR,寄存器可用,那对应的INDF怎么就不能通过编译呢?
for(FSR=0x20;FSR<0x7f;FSR++)
{
  asm("CLRF _INDF");
}
沙发
ZRL700424| | 2011-2-14 09:59 | 只看该作者
用C就不要操作这个寄存器了

使用特权

评论回复
板凳
loveme99|  楼主 | 2011-2-14 11:59 | 只看该作者
用指针的话得切换BANK 来清除其他bank的ram内容吧

使用特权

评论回复
地板
yewuyi| | 2011-2-14 14:02 | 只看该作者
如果用C语言还像ASM那样自己操作FSR和INDF的话,那你还不如直接用ASM写程序后了。

呵呵,你这是没事找抽啊。。。

使用特权

评论回复
5
NE5532| | 2011-2-14 21:06 | 只看该作者
哈哈,这个叫“偷窥”,人家C是穿了衣服的,别这样哈。

使用特权

评论回复
6
XIEYUANBIN| | 2011-2-15 08:49 | 只看该作者
你用什么型号的,新的16系列单片机不止一个FSR,也不止一个INDF。

使用特权

评论回复
7
XIEYUANBIN| | 2011-2-15 08:51 | 只看该作者

在C中嵌入汇编直接操作INDF

本帖最后由 XIEYUANBIN 于 2011-2-15 08:54 编辑

我可以在C中直接操作INDF的。这个是新的16F1826
  while (ADGO);    //此处汇编,
  #asm
  CLRF _BSR
  MOVLW _ADRESL
  MOVWF _FSR0L
  CLRF _FSR0H
  MOVF _INDF0,W
  MOVWF _TEMP1
  INCF _FSR0L
  MOVF _INDF0,W
  MOVWF _TEMP1+1
  
  #endasm

使用特权

评论回复
8
yewuyi| | 2011-2-15 09:10 | 只看该作者
LZ写的应该就有问题:

for(FSR=0x20;FSR<0x7f;FSR++)
{
  asm("CLRF _INDF");
}
----------------------------------------

asm("CLRF _INDF");应该写成asm("CLRF INDF");

使用特权

评论回复
9
loveme99|  楼主 | 2011-2-15 09:52 | 只看该作者
批评的对,是这样的,我开始用c写了一个如下:
void clearram()
{
        unsigned char *i;
        for(i=0x20;i<0x7f;i++) *i=0;
}
编译的时候提示
Warning [357] F:\seaside\PIC c\picc-code\picc-code\picc-code\carmain.c; 366.11 illegal conversion of integer to pointer
Error   [208] F:\seaside\PIC c\picc-code\picc-code\picc-code\carmain.c; 366.18 operands of "<" not same type
换指针类型也不好用
后来又改了下
void clearram()
{
        unsigned char *i,j;
        for(j=0x20;j<0x7f;j++)
              {
        i=j;
        *i=0;
              }
}
能编译过去了
提示        i=j;
Warning [357] F:\seaside\PIC c\picc-code\picc-code\picc-code\carmain.c; 368.4 illegal conversion of integer to pointer

使用特权

评论回复
10
skygrow| | 2011-2-15 14:24 | 只看该作者
清RAM的动作编译器会在启动代码里自动完成的吧

使用特权

评论回复
11
Light_David| | 2011-2-22 00:13 | 只看该作者
嘿嘿,看来LZ有汇编情节,和我当初初用C一样;也的确,用C就不要考量使用这两个寄存器(严格来说INDF貌似不算寄存器)不过有很多操作PICC回自动使用的,不用担心代码太臃肿,另外一般汇编的上电请RAM块在C中也不用了,它会自动增加代码去清的,可以完全忽略的,这都是经过我亲自确认过的。:D

使用特权

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

本版积分规则

19

主题

119

帖子

1

粉丝