打印

SPI mode 程序求助

[复制链接]
1706|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
delin17|  楼主 | 2007-9-13 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
spi, se, AN, ov, RS
这是一个我写的SPI mode0的程序
6502内核.
可是发送完后得到的数据不对,那位能帮我看看嘛,谢谢
SPI_RW:.proc
    PHA
    TXA
    PHA
    TYA
    PHA
    .if 1
    LDX #0
    LDY #0
SPI_LOOP#:
    %SetSCLK
    tya 
    asl    a
    tay
    lda 08h
    and #SPI_DO
    beq _RE#
    tya     
    ora #0x01
    tay
_RE#:
    lda _SPI_Data
    and #0x80
    beq Bit_Zero
    %SetSI
    jmp SI_Over
Bit_Zero:
    %ClrSI
SI_Over:
    asl _SPI_Data
    %ClrSCLK
    inx
    txa
    cmp #0x08
    bmi SPI_LOOP#
    tya
    sta _SPI_Data
          rts
.endp

相关帖子

沙发
delin17|  楼主 | 2007-9-13 12:19 | 只看该作者

前面程序未完全贴,rts是在这里面加的,出入核实际程序是一致

程序已修改成这样
lda _SPI_Data
    and #0x80
    beq Bit_Zero
    %SetSI
    jmp SI_Over
Bit_Zero:
    %ClrSI
SI_Over:
    asl _SPI_Data
    %SetSCLK
    tya 
    asl    a
    tay
    lda 08h
    and #SPI_DO
    beq _RE#
    tya     
    ora #0x01
    tay
_RE#:
    %ClrSCLK
    inx
    txa
    cmp #0x08
    bmi SPI_LOOP#
    tya
    sta _SPI_Data
    .else
        lda _SPI_Data
        sta P_3003H_SPI_TXD3
        lda #%10000000
        sta P_3008H_SPICTL0
SPI_Ready:
        lda P_3009H_SPICTL1
        and #0x01
        beq SPI_Ready    
        lda P_3007H_SPI_RXD3
        sta _SPI_Data

使用特权

评论回复
板凳
delin17|  楼主 | 2007-9-14 10:46 | 只看该作者

居然没人帮忙

问题还没解决..
当我把SDIN和SDO IO口换一下就成了,很奇怪
IO口初始也换过来了

使用特权

评论回复
地板
古道热肠| | 2007-9-14 16:17 | 只看该作者

SDIN和SDO是要分清的

  SPI总线的SI是数据移入脚,SO是数据移出脚,是不能搞混的。

使用特权

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

本版积分规则

80

主题

1374

帖子

1

粉丝