00001 00016 /*_____ I N C L U D E S ____________________________________________________*/ 00017 #include "config.h" 00018 //#include "lib_mem/spi\spi_lib.h" 00019 #include "lib_mcu/spi/spi_lib.h" 00020 00021 00022 /*_____ G L O B A L D E F I N I T I O N _________________________________*/ 00023 00024 /*_____ D E F I N I T I O N ________________________________________________*/ 00025 00026 /*_____ M A C R O S ________________________________________________________*/ 00027 00028 bit spi_test_hit (void) 00029 { 00030 return Spi_rx_ready(); 00031 } 00032 00033 00034 bit spi_init (spi_cf_t config) 00035 { 00036 Spi_init_bus(); 00037 if(config == SPI_MASTER){Spi_select_master_mode();} 00038 else {Spi_select_slave_mode();} 00039 00040 Spi_hw_init(SPI_CONFIG); 00041 Spi_set_doublespeed();/*to delete if wished*/ 00042 Spi_enable(); 00043 00044 00045 return TRUE; 00046 } 00047 00048 00049 char spi_putchar (char ch) 00050 { 00051 Spi_send_byte(ch); 00052 while(!Spi_tx_ready()); 00053 return ch; 00054 } 00055 00056 00057 00058 char spi_getchar (void) 00059 { 00060 00061 register char c; 00062 00063 while(!Spi_rx_ready()); 00064 c = Spi_get_byte(); 00065 return c; 00066 } 00067 00068 void SPI_Transmit_Master(char cData) 00069 { 00070 /* Wait for transmission complete */ 00071 Spi_wait_eot(); 00072 /* Start new transmission */ 00073 Spi_send_byte(cData); 00074 00075 } 00076 00077 00078