SPI端口H + atmega2560的AVR SBI

时间:2016-11-25 14:34:35

标签: assembly avr spi atmega

我在avr / assembly方面不是那么强大而且我在atmega2560上从PORTH选择“CS”时遇到问题...你能帮助我吗?

代码:

#define DDR_CS  _SFR_IO_ADDR(DDRH), 5   // MMC CS pin (DDR, PORT)
#define PORT_CS _SFR_IO_ADDR(PORTH), 5

#define DDR_CK  _SFR_IO_ADDR(DDRB), 1   // MMC SCLK pin (DDR, PORT)
#define PORT_CK _SFR_IO_ADDR(PORTB), 1

#define DDR_DI  _SFR_IO_ADDR(DDRB), 2   // MMC DI pin (DDR, PORT)
#define PORT_DI _SFR_IO_ADDR(PORTB), 2

#define PIN_DO  _SFR_IO_ADDR(PINB), 3   // MMC DO pin (PIN, PORT)
#define PORT_DO _SFR_IO_ADDR(PORTB), 3



;---------------------------------------------------------------------------;
.nolist
#include <avr/io.h>
.list
.text


;---------------------------------------------------------------------------;
; Initialize MMC port
;
; void init_spi (void);

.global init_spi
.func init_spi
init_spi:
     sbi    DDR_CS      ; CS: output
     sbi    DDR_DI      ; DI: output
     sbi    DDR_CK      ; SCLK: output
     sbi    PORT_DO     ; DO: pull-up
     ret
.endfunc

我正在制作的错误:

  

asmfunc.S:44:错误:数字必须为正且小于32

我发现了这个post,我认为这是答案,我不知道如何用正确的语法编写它。

0 个答案:

没有答案