[elektro] PIC I2C lib
Andras Huszti
kyrk at villamvadasz.hu
Tue Oct 19 19:57:26 CEST 2010
Hali!
En a kovetkezo keppen oldanam meg a mastert:
Csinalok egy uj tipust pl
typedef _IICdatabyte {
unsigned int data;
unsigned char readWrite;
} IICdatabyte;
A data az int mert a 0..255ig char afolott meg specialis vezerlokar
lehetne:
#define START 0x100
#define STOP 0x101
#define EMPTY 0x102
#define WRITE 0x103
Ebbol csinalnek:
typedef _IICdatagramm {
IICdatabyte data[32];
unsigned int address;
} IICdatagramm;
A data hossza valami fix ertek aminel tobb biztosan nem kell
(szuklatokoruseg, lehet rogton pointerrel marhulni is)
Ha ez megvan akkor lefoglalnam a ICCdatagramm-ot 1 peldanyban. Kuldes
elott feltoltenem a megfelelo elemeket. Pl hogy adott elem read vagy
write. Aztan az ISR ezt dolgozna fel. Elonyye, hogy nem fogy el tuti a
kuldendo adat. Hatranya a fix memoria igeny a sramban.
ISR-ben ha hiba tortenik akkor nincs ertelme tovabb folytatni a kuldest.
A buszt valamilyen ismert helyzetbe kell hozni, vagy most vagy a
kovetkezo kuldes elott kozvetlenul. Esetleg lehet a foprogramnak
jelezni, hogy bukott a kuldes. Sokszor nem fontos a pontos hiba oka,
eleg csak szolni ,hogy nem jott ossze. Neha fontos akkor erdemes jobban
megirni a hibajelzest.
Szerintem amig a SSPBUF kuldesnel nincs ujratoltve addig nem ad CLK-t a
master ergo a busz az var. Tehat ez implicit megvan. A slavnek meg van
clock strechje.
More information about the Elektro
mailing list