[elektro] PIC I2C lib

Moczik Gabor pm_levlista at progzmaster.hu
Tue Oct 19 20:49:27 CEST 2010


Andras Huszti wrote:
> 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
 >
> 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.

Erre eloszor gondoltam en is, elore osszeallitok egy szekvenciat hogy 
jonnek sorban a read/write muveletek.

Aztan inkabb elvetettem, mivel nem ismerek minden eszközt, és elvben 
előfordulhat olyan eset, hogy pl. egy read által visszajött értéktől 
függ, hogy kell-e még olvasni vagy írni, mit, mennyit.

Ezt inkább egy az egyben a főprogramra bíznám.

> ISR-ben ha hiba tortenik akkor nincs ertelme tovabb folytatni a kuldest.

A slave NAK válasza végzetes hiba? (mármint nem a címre)
El tudok képzelni olyan eszközt, ami elfogad további adatot függetlenül 
attól hogy az előző adatot nem fogadta el.

> A buszt valamilyen ismert helyzetbe kell hozni, vagy most vagy a
> kovetkezo kuldes elott kozvetlenul.

Minél előbb, annál jobb. Ez egyelőre nem multimaster lib, de ebben a 
szemléletben gondolkodok.

Tényleg, ha bus collision van, a START feltételt vagy a cím küldését az 
ISR újrapróbálhatná párszor a főprogram nélkül is.
Kérdés, hogy van-e ennek értelme?
Ha multi-master környezet van, akkor a főprogramot úgyis fel kell 
készíteni az újraküldésre, ekkor meg tökmindegy.

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

Most epp eleg preciziosra vettem a format :-) eleg sok hibalehetoseg 
van, ahogy nezem.

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

Most azt tettem, hogy ha netan nincs adat, akkor addig letiltja a 
megszakitast. Lesz timeout is...

Percek kérdése és eljutok oda hogy kipróbáljam. :-)

-- 
((( Móczik Gábor  )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))



More information about the Elektro mailing list