#include "piccolo_all.h"#include "spi.h"Makródefiníciók | |
| #define | BLKSIZE 64 |
| #define | CMD_WRSR 0x01 |
| #define | CMD_WRITE 0x02 |
| #define | CMD_READ 0x03 |
| #define | CMD_WRDI 0x04 |
| #define | CMD_RDSR 0x05 |
| #define | CMD_WREN 0x06 |
| #define | SLAVE_ENABLE() mLED_4 = 0 |
| #define | SLAVE_DISABLE() mLED_4 = 1 |
Függvények | |
| void | waitFor25LC256 (void) |
| void | memWrite25LC256 (union16 MemAddr, uint8 *pbuf) |
| void | memRead25LC256 (union16 MemAddr, uint8 *pbuf) |
| void | out2hex (unsigned char t) |
| void | main (void) |
Hardver követelmények: a kísérleti áramkört egy 25LC256 SPI EEPROM-mal kell kiegészíteni, az összekötést az alábbi táblázat szerint alakítsuk ki:
PIC18 25LC256 =========================================== SDI <--------------------- SO (2) SDO ---------------------> SI (5) SCK ---------------------> SCK (6) LED4 -- Slave Select -----> CS (1) VDD ---------------------- VCC (8), WP(3), HOLD(7) GND ---------------------- GND (4)
Definíció a(z) 25lc256_spi.c fájlban.
| void memRead25LC256 | ( | union16 | MemAddr, | |
| uint8 * | pbuf | |||
| ) |
Egy memórialap (64 bájt) olvasása az EEPROM egy megadott címétől kezdődően, és eltárolása az adatbufferbe.
| u16_MemAddr | a beolvasni kívánt memórialap kezdőcíme | |
| *pu8_buf | mutató az adatbuffer kezdetéhez |
Definíció a(z) 25lc256_spi.c fájl 83. sorában.
| void memWrite25LC256 | ( | union16 | MemAddr, | |
| uint8 * | pbuf | |||
| ) |
Egy memórialap (64 bájt) írása a bemenő adatbufferből, az EEPROM egy megadott címétől kezdődően.
| MemAddr | a memórialap kezdőcíme, ahová írunk | |
| buf | mutató az adatbuffer kezdetéhez |
Definíció a(z) 25lc256_spi.c fájl 61. sorában.
| void out2hex | ( | unsigned char | t | ) |
Egy előjel nélküli bájtot kétjegyű hexadecimális formában kiír a kimeneti bufferbe. Ez a függvény meghívja a blokkoló típusú _user_putc() függvényt!
Definíció a(z) 25lc256_spi.c fájl 100. sorában.
| void waitFor25LC256 | ( | void | ) |
Várakozás arra, hogy az EEPROM befejezze az írást. Amíg az írás tart, addig az EEPROM STATUS regiszterének legalsó bitje (WIP) '1'-ben áll. A függvény blokkoló típusú, addig nem tér vissza, amíg az EEPROM foglalt.
Definíció a(z) 25lc256_spi.c fájl 46. sorában.
1.5.9