SPI mode 程序求助

[复制链接]
2280|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

主题

1377

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部