打印
[复制链接]
1603|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

#define DBYTE ((unsigned char volatile*)0x100) //指向100h
#asm  
        LFSR 0, 0x1ff
LOOP:
        BSF PORTC,0 //RC0=1
        BCF PORTC ,0 //RC0=0
        MOVF PORTD, W //将PORTD,即AD转换的值写入W
        MOVWF INDF0  //w写入当前指向的空间
        MOVFF   INDF0,PORTB //当前空间的值放入PORTB
        MOVWF POSTINC0 //指针加一
        BTFSS FSR0H ,1
CALL LOOP
       
#endasm
while(i<255)
                {       
                        a=DBYTE;//偏移i
                        PORTC=1;
                        PORTC=0;
                        PORTB=a;
            i++;
                }

先把数据存入BANK1即100H到1FFH后,如何把这些单元的数据取出,放入a。这些数据存得应该没问题吧?

沙发
GeorgeYao929|  楼主 | 2014-5-29 11:21 | 只看该作者
这是PIC18F4520

使用特权

评论回复
板凳
huangxz| | 2014-5-29 16:29 | 只看该作者
程序太碎了,

使用特权

评论回复
地板
yklstudent| | 2014-5-30 08:21 | 只看该作者
不知道楼主为什么要这么做
能说说什么情况下需要这么做吗?

使用特权

评论回复
5
GeorgeYao929|  楼主 | 2014-5-30 08:55 | 只看该作者
yklstudent 发表于 2014-5-30 08:21
不知道楼主为什么要这么做
能说说什么情况下需要这么做吗?

我在进行AD转换,由于采的频率比较高,接受数据是用汇编写的,然后取出数据是用C写的

使用特权

评论回复
6
zhimagod| | 2014-5-30 09:15 | 只看该作者
貌似你弄个指针就能读出来了吧

使用特权

评论回复
7
GeorgeYao929|  楼主 | 2014-5-30 09:37 | 只看该作者
zhimagod 发表于 2014-5-30 09:15
貌似你弄个指针就能读出来了吧

DBYTE 这个就是指针啊?我在程序最开始就定义了。

使用特权

评论回复
8
zhimagod| | 2014-5-30 10:24 | 只看该作者
有点不清楚楼主的问题了,是读不出?读不对?还是?

使用特权

评论回复
9
GeorgeYao929|  楼主 | 2014-5-30 15:55 | 只看该作者
MOVFF   INDF0,PORTB //当前空间的值放入PORTB           这句话是用汇编读的,汇编读得是对的,如上面蓝色的图显示,但用C语言读得不对,我该怎么办?



#define DBYTE ((unsigned char volatile*)0x100) //指向100h
#asm  
        LFSR 0, 0x1ff
LOOP:
        BSF PORTC,0 //RC0=1
        BCF PORTC ,0 //RC0=0
        MOVF PORTD, W //将PORTD,即AD转换的值写入W
        MOVWF INDF0  //w写入当前指向的空间
        MOVFF   INDF0,PORTB //当前空间的值放入PORTB
        MOVWF POSTINC0 //w写入POSTINC0,指针加一
        BTFSS FSR0H ,1
CALL LOOP
        
#endasm
while(i<255)
                {        
                        a[i]=DBYTE[i];//偏移i
                        PORTC=1;
                        PORTC=0;
                        PORTB=a[i];
            i++;
                }

使用特权

评论回复
10
GeorgeYao929|  楼主 | 2014-5-30 15:56 | 只看该作者
zhimagod 发表于 2014-5-30 10:24
有点不清楚楼主的问题了,是读不出?读不对?还是?


MOVFF   INDF0,PORTB //当前空间的值放入PORTB           这句话是用汇编读的,汇编读得是对的,如上面蓝色的图显示,但用C语言读得不对,我该怎么办?

使用特权

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

本版积分规则

17

主题

51

帖子

0

粉丝