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.
1.5.9