#ifndef __F38X_SPI_H__ #define __F38X_SPI_H__ #include "c8051F380.h" #include "main.h" #include "type.h" #if !defined(SPI_DEBUG_BIT_BANG) #define spi_assert_cs() {NSSMD0 = 0;} #define spi_deassert_cs() {NSSMD0 = 1;} #elif defined(USE_ASM_FOR_SFR_MANIP) #define spi_assert_cs() {__asm anl _P0,SHARP ~0x08 __endasm; } #define spi_deassert_cs() {__asm orl _P0,SHARP 0x08 __endasm; } #else #define spi_assert_cs() (P0 &= ~0x08) #define spi_deassert_cs() (P0 |= 0x08) #endif u8 spi_ckr(u8 new_value); void spi_init(); #define spi_clock(khertz) spi_ckr((u8)((SYSCLK / 1000 / 2 / khertz) - 1)) unsigned char spi_write_read_byte(unsigned char byte); #define spi_send_8clock() spi_write_read_byte(0xFF) void spi_read(unsigned char * pchar, unsigned int length); void spi_write(unsigned char * pchar, unsigned int length); #endif