Makródefiníciók | |
#define | SSPENB 0b00100000 |
#define | CKP_ACTIVE_LOW 0b00010000 |
#define | CKP_ACTIVE_HIGH 0b00000000 |
#define | MASTER_FOSC_4 0b00000000 |
#define | MASTER_FOSC_16 0b00000001 |
#define | MASTER_FOSC_64 0b00000010 |
#define | MASTER_TMR2 0b00000011 |
#define | SLAVE_SSON 0b00000100 |
#define | SLAVE_SSOFF 0b00000101 |
#define | SPI_SMP_END 0b10000000 |
#define | SPI_SMP_MID 0b00000000 |
#define | SPI_CKE_ON 0b01000000 |
#define | SPI_CKE_OFF 0b00000000 |
Függvények | |
void | spi_init (uint8 spi_mode, uint8 spi_busmode) |
uint8 | spi_io (uint8 data) |
Definíció a(z) piccolo_spi.h fájlban.
void spi_init | ( | uint8 | spi_mode, | |
uint8 | spi_busmode | |||
) |
Az SPI modul konfigurálása és engedélyezése az spi_mode paraméterrel megadott módban és adatsebességgel. A paraméterek összeállításához a piccolo_spi.h állományban definiált makrókat használhatjuk.
spi_mode | az SSPCON1 regiszterbe írandó adat | |
spi_busmode | az SSPSTAT regiszterbe írandó adat |
Definíció a(z) piccolo_spi.c fájl 18. sorában.
uint8 spi_io | ( | uint8 | data | ) |
Kiír egy bájtot a kimeneti bufferbe, kivárja, amíg az átvitel lezajlik és a bejövő adatbájttal tér vissza. A PIC18F4550 Errata szerint az átvitel végét jelző BF bitet nem szabad közvetlenül vizsgálni, ezért helyette a programmegszakítás jelzőbitet vizsgáljuk. Szintén az Errata ajánlja, hogy adatküldés előtt olvassuk ki az SSPBUF regisztert, ami egyúttal törli a BF bitet. Ha elmulasztjuk a BF bit törlését, akkor a következő beolvasott adat nem másolódik át az SSPBUF regiszterbe!
data | a kiküldeni kívánt adat |
Definíció a(z) piccolo_spi.c fájl 50. sorában.