📄 gpio_spi.asm
字号:
.include Spmc75_regs.inc
.code
.define GPIO_SPI_CLK_Port P_IOB_Buffer_ADDR
.define GPIO_SPI_DAT_Port P_IOB_Buffer_ADDR
.define GPIO_SPI_Load_Port P_IOB_Buffer_ADDR
.define GPIO_SPI_CLK 0x0080
.define GPIO_SPI_DAT 0x0040
.define GPIO_SPI_Load 0x0100
.PUBLIC _GPIO_SPI_TXD
_GPIO_SPI_TXD:
r2 = 13
GPIO_SPI_B: test r1,0x1000
jz GPIO_SPI_A
r3 = [GPIO_SPI_DAT_Port]
r3 |= GPIO_SPI_DAT
[GPIO_SPI_DAT_Port] = r3
r3 = [GPIO_SPI_CLK_Port] //产生时钟
r3 |= GPIO_SPI_CLK
[GPIO_SPI_CLK_Port] = r3
r3 &= ~GPIO_SPI_CLK
[GPIO_SPI_CLK_Port] = r3
r1 = r1 lsl 1
r2 -= 1
jnz GPIO_SPI_B
jmp GPIO_SPI_C
GPIO_SPI_A: r3 = [GPIO_SPI_DAT_Port]
r3 &= ~GPIO_SPI_DAT
[GPIO_SPI_DAT_Port] = r3
r3 = [GPIO_SPI_CLK_Port] //产生时钟
r3 |= GPIO_SPI_CLK
[GPIO_SPI_CLK_Port] = r3
r3 &= ~GPIO_SPI_CLK
[GPIO_SPI_CLK_Port] = r3
r1 = r1 lsl 1
r2 -= 1
jnz GPIO_SPI_B
GPIO_SPI_C: //发送结束
retf
.PUBLIC _GPIO_SPI_Load
_GPIO_SPI_Load:
r1 = [GPIO_SPI_Load_Port]
r1 |= GPIO_SPI_Load
[GPIO_SPI_Load_Port] = r1
r1 &= ~GPIO_SPI_Load
[GPIO_SPI_Load_Port] = r1
retf
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -