Knihovna I2c

Jé já přehlíd to že to Tady je odkaz … . kouknu na to dík

Tak tu knihovnu ve složce nemám. Je možné jí někde sehnat?

Tak jsem aktualizoval MPLAB i XC8 a bohužel I2C.h knihovna nikde… není náhodou jen v knihovnách pro XC32? ( ale já programuju 8bitový PICka )
googlim pátrám nenacházím. Pomalu se dostavuje flustrace. XX hodin strávených honěním něčeho tak triviálního jako je soubor i2c.h o velikosti 1kB mě fakt ubíjí.

:slight_smile: Zkus kouknout na tu knihovnu v XC18. Tady něco píšou.Určitě něco na Microchip bude.Stačí prohledat …

To mám stažený : - ) ale je to pro MPLAB a ne MPLAB X IDE a pro C18 a ne pro XC… A já jsem na linuxu, kde MPLAB neběží a momentálně se mi sek VMware pod kerym mi běží XPéčka. Když se to … tak všechno.
Ale povedlo se mi najít pěkně vytvořený I2C sice na komunikaci s EEPROM, ale pochopitelně napsanou a myslim, že v mí knihovně mám špatně pořešený ACK a NACK bity. Zkusim se tomu zavěnovat a snad se zadaří.

Zajímavý je, že já mám taky MPLAB X a na linuxu jsem taky a tu knihovnu tam mám… asi děláš něco špatně, meloune

A jaký používáš XCéčko XC8, 16 nebo 32 jelimane.

A byl by moc velkej problém, jí připojit jako soubor spíš než neurčitě plácat vo tom že něco dělám špatně. Určitě jo … Hejtovat je jednoduší než skutečně pomoc co!

Milerád, ale první dodržuj obvyklá pravidla, pak se najde dost lidí ochotných ti pomoci.

Pomocí Google to mám hned jako první odkaz, na třetím odkazu už se mi to rovnou chce stáhnout do PC, Bing je na tom dost podobně - tzn. ani jsi to pořádně nezkusil a rovnou se ptáš. Takhle fakt ne, vyhledávat linky za tebe ti tu nikdo nebude.

Kdyby se mi to povedlo vyggoglit tak sem nepíšu.
Napsal jsem asi 800 variant k prohledání s i2c.h microchip library download
v různejch podobách a vždycky narážim jen na stránky jak se ta knihovna používá a nikde není ke stažení nebo k zobrazení. všude jen návody, PDFka nebo vlastní varianty prpodivnejch nesmyslně navrženecjh I2C komunikací založenejch jen na přepínání TRIS 0 TRIS 1 .
Správné použití SSPSTAT, SSPEN, SSPCON1, SSPCON2, … jsem nenašel nikde.

Tak když už jsi to teda našel na první stránce tak mi dej link a nepiš do vlákná zbytečný komentáře. Když někdo bude řešit stejnej problém ať nemusí číst tyhle balastní kecy. Děkuju.

Kurňa chlape, tvoje drzost je nehorázná. Zbytečný komentáře opravdu píšu, ale jenom proto, že se ti ne a ne rozsvítit. Link kde to najít už jsi dávno dostal, jenže ty seš línej i číst a myslet, ne jenom hledat, a navíc ti (krom slohu) neříká nic ani slušný vychování. Co od nás vlastně chceš, všechno na stříbrným podnose?? Opravdu si myslíš, že mě svým rejpáním vyprovokuješ k tomu, že ti sem hodím link “aby se neřeklo” nebo “aby byl pokoj”?? Se vzpamatuj a čti pořádně co ti sem kdo dává. Někdy je největší pomoc někomu nepomoct, kdybys tu samou energii co věnuješ do pruzení tady na fóru věnoval do toho projektu, tak už to máš dávno hotový.

Cos nepochopil na tom nepiš zbytečný komentáře. Bylo to slovo zbytečný? Víš co tak už raději nepiš vůbec. Potřebuju radu a ne hejty. Děkuju.

github.com/DSSCircuits/I2C-Mast … ster/I2C.h

github.com/DSSCircuits/I2C-Mast … ster/I2C.h

//Chtěl jsem tuto duplicitu smazat, ale nesmím. Tak doufám, že je to alespoň to co hledáš.

/// Aha, ty jsi to chtěl pro Microchip, tak se omlouvám za dezinfo

Zbytečné přestanou být až se se ti rozsvítí a začneš se snažit sám, v tu chvíli dostanou svůj význam - ale to jsi samozřejmě taky nepochopil, nicméně to na věci nic nemění. Nečteš to tady sám, co je zbytečné pro tebe bude jiným užitečné.

Rady jsi dostal ode mě i od ostatních, ani jsi za ně nepoděkoval a je ti to málo, protože nenaplňují nějakou kdovíjakou tvoji pochybnou představu = sám jsi hater, co tu zaměňuje příčinu s následkem, akci s reakcí a ani nemá žádnou soudnost a sebereflexi. Přeber si to jak chceš.

microlan - děkuji alespoň za snahu. Víš oproti názorum hejterů, co mi neustále lezou do vlákna, jsem na tom makal fakt dost usilovně. Nastahoval jsem hromadu balastu, ale už mám pár knihoven, ze kterých se dá určit postup inicializace pro microchip. Myslim, že inicializaci už mám správně. Sice ještě po I2C nekomunikuju, ale už jsem alespoň roztikala 100 kHz na SCL. JJ rozhod jsem se že si napíšu vlastní knihovnu. Vesměs jsem si sám postavil knihovny pro sedmisegmentovky, komunikaci s Dallas, LCD displejem s řadičem, i ovládání pomocí IRDA. Vše bez zbytečnejch dotazů na fóra. I2C mi trochu motá hlavu ale nakonec to dám.
Kdyby náhodou někdo další chtěl poradit, už to bude pro někoho jiného, nebudu už číst toto fŕum. Ty hejty mě zbytečně rozčilujou.

Tak ty nedáš pokoj a pořád budeš provokovat?? Kdybys sem rovnou přiložil to, co jsi dělal a nefungovalo to, tak se celé tohle divadlo vůbec nemuselo odehrát, radily by se konkrétní věci ke konkrétním problémům. Tvé kecy typu “jak moc jsem na tom makal” a “kde všude jsem hledal” ti tu nikdo věřit nebude dokud je patřičně nepodložíš - už z principu, zhrzených žáčků už tu bylo nespočet a domácí úkoly nikomu neděláme. To samé s googlením, přístup k vyhledávači máš úplně stejnej jako všichni ostatní - ani ses neobtěžoval sem napsat, jaká hesla jsi zkoušel, pokud jsi to tedy zkoušel (a ještě navíc jsi konkrétní odkaz s řešením dostal od Sendera tady a ani ses neobtěžoval si ho pořádně pročíst, jinak bys už dávno věděl co máš hledat a jak se to přesně jmenuje).

Takže když tak tvrdíš jak moc jsi na tom makal tak to sem taky přilož ať všichni vidí že nejsi jen pouťovej kecal bez morálky, a pokud ne tak aspoň neotravuj provokacemi jako malej umíněnej fracek, když už tedy nejsi ochoten se chovat slušně ani zčásti.

Kdybys čet tak víš, že sháním knihovnu i2c.h. že ji v seznamu knihoven nemám, že dělám v XC8 a na MPLAB-X . Kdyby sis přečet ten odkaz, na kterej mě upozorňuješ (a seš přesvědčenej, že jsem hoi nečet ), tak víš, že ten uveřejněnej program ke ztažení tam je pro MPLAB - IDE a napsanej pro C32 a používá knihovmu plib.h
Už třicet let jsem nenapsal žádnej domácí úkol a dávno nechodim do školy. Živim se oboromem kterej je o několik tisíc voltů vejš než PICka a ty mám jen jako koníček. Akorát takovýdle šulíni jako jsi ty mi ho dokážou zkazit. Seš prostě namyšlenej hejter i s titulem ohvězdičkovanýho " profesionála " SE DI VYCPAT.

Já to čet’, neboj se. Taky používám MPLAB X a XC8 taky, ale pořád mi hlava nebere proč si PLIB pro XC8 nestáhneš, když teda víš že to tam je, a místo toho tu zbytečně vypruzuješ tím, že jsem podle tebe hater, když ti na to nehodím přímej link a místo toho tě upozorním na místní zvyklosti…?

Aha, tak tohle tě žere? Mám pro tebe novinu, tyhle hvězdičky jsou hodnocení BB fóra jen a pouze podle počtu komentů a jde to absolutně mimo mě a nijak mě nezajímají. Ovšem když se tu budeš bavit s lidma slušně a bez přezíravých podtónů, je možné že se jich někdy dočkáš (podmínkou je ovšem registrace), když ti na těch hvězdičkách tak záleží. Já poradím rád, stejně jako většina zdejších stálých členů, ale jsou tu jisté zažité zásady, kterým se vytrvale odmítáš podřídit. Dělej si co chceš, jsi dospělej, ale nezapomínej na to, že i ostatní jsou dospělí a můžou si také dělat víceméně co chtějí - takže se rozčiluješ marně a obecná pokora je to, co ti schází. Nadávky nekomentuju, stejně jako facka není argument, tak jím nejsou ani ony - ovšem o sobě jsi nám tím naznačil docela dost.

Uuštřil jsem čas hledáním další knihony a napsal si vlastní. Otestováno zatím jen na komunanikaci s DS1307. Tedy jen s jedním slave na sběrnici.
třeba to někomu pomůže do začátku.

#include <xc.h>
#include <pic18f2455.h>

void InitI2C(void) /// hotovo
{
TRISBbits.RB0 = 1;// set SDA jako vstup
TRISBbits.RB1= 1; // set SCL jako vsup
PIE1bits.SSPIE = 1; // povolení p?eru?ení od MSSP je povoleno
PIR1bits.SSPIF = 0; // p?íznak p?eru?ení od MSSP je nulován a ?eká se na vysílání a p?íjem
SSPSTAT = 0x80; // 80 SMP - ?ízení rychlosti p?eb?hu je odstaveno 100kHz
SSPCON1 = 0x28; // SSPEN - povolení MSSP a nastaveno na I2C nakofiguruje SDA a SCL a SSPM na Master a kmito?et podle vzorce fosc/ 4x(SSPADD+1)
SSPCON2 = 0x00; // ?innost I2C zatím pozastavena
SSPADD = 0x31; // nastavení rychlosti je podle vzorce fosc/ 4x(SSPADD+1) tj 20 000 000 Hz/ 4x (49+1) = 100 000 Hz
SSPCON1bits.SSPEN = 1;// opakovaný start ---- vy?adovaná rutina
// PIR2bits.BCLIF = 0; // nulování kolize na bus —to myslim je zbyte?ný nemám povoleno SMBUS v SSPStat
SSPCON2bits.PEN =1; // inicialiyuje stop stav na SDA a SCL - v init nutne, pro ukonceni prenosu.
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu

}
void I2C_Start(void) /// hotovo
{
PIR1bits.SSPIF = 0;
SSPCON2bits.PEN =0; // ne?inný stop stav na SDA a SCL — nenuluje automaticky
SSPCON2bits.SEN =1; // Inicializuje start na SDA a SCL povolí hodiny — nuluje automaticky
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
}

void I2C_ReStart(void)
{
PIR1bits.SSPIF = 0;
SSPCON2bits.RSEN =1; // Inicializuje restart na SDA a SCL povolí hodiny
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
}

void I2C_Stop(void) /// hotovo
{

SSPCON2bits.PEN =1; // inicialiyuje stop stav na SDA a SCL
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
PIR1bits.SSPIF = 0; // p?íznak p?eru?ení od MSSP je nulován a ?eká se na vysílání a p?íjem 

}

void I2C_Write_Byte(unsigned char Byte) // hotovo
{
PIR1bits.SSPIF = 0; // p?íznak p?eru?ení od MSSP je nulován a ?eká se na vysílání a p?íjem
SSPBUF = Byte;
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
}

unsigned char I2C_Read_Byte(void)
{
unsigned char RxData = 0; // RxData1 = 0,
PIR1bits.SSPIF = 0; // p?íznak p?eru?ení od MSSP je nulován a ?eká se na vysílání a p?íjem
SSPCON2bits.RCEN = 1; // povolení p?íjmu v re?imu master
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
RxData = SSPBUF;
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu
SSPCON2bits.ACKDT = 1; //potvrzení ACK 0- je 1 - není - p?ipravení kvitování
SSPCON2bits.ACKEN = 1; // inicializuje ACK sekvenci na SDA a SCL ode?le stav ACKDT - povoleno kvitování
PIR1bits.SSPIF = 0; // p?íznak p?eru?ení od MSSP je nulován a ?eká se na vysílání a p?íjem - odesílání
while (PIR1bits.SSPIF == 0); //?eká na ukon?ení p?enosu odesláno
return RxData; // ,RxData1