hur skall tris-registret se ut vid i2c
hur skall tris-registret se ut vid i2c
Jag försöker få igång i2c mellan två pic:ar
Jag undrar om nån av er har koll på om sda och scl ska vara definierade som in- eller utgång?
Sen undrar jag vad det kan vara för problem om pic:en aldrig skickar nån startsignal... scl och sda sänks aldrig över huvudtaget... pull-upmotstånden är så pass stora så det borde inte vara några problem att lägga ut en nolla.
Jag undrar om nån av er har koll på om sda och scl ska vara definierade som in- eller utgång?
Sen undrar jag vad det kan vara för problem om pic:en aldrig skickar nån startsignal... scl och sda sänks aldrig över huvudtaget... pull-upmotstånden är så pass stora så det borde inte vara några problem att lägga ut en nolla.
Jag har kollat ett data blad, och TRIS skall vara *input* hela tiden.
MSSP modulen kommer, beroende på vad som händer på bussen,
att sedan sätta pinnarna som in eller output efter behov.
Det är för övrigt ganska normalt att en modul på detta sätt "tar över" funktionen från TRIS. Ganska rimligt att man inte skall behöva dribbla med TRIS när man kör I2C, eller hur !
MSSP modulen kommer, beroende på vad som händer på bussen,
att sedan sätta pinnarna som in eller output efter behov.
Det är för övrigt ganska normalt att en modul på detta sätt "tar över" funktionen från TRIS. Ganska rimligt att man inte skall behöva dribbla med TRIS när man kör I2C, eller hur !
Oj, nu pratar vi på många olika plan.
Om man använder en färdig funktion i ett högnivåspråk är det en självklarhet att den sätter TRIS-registret till vad som behövs. Använder man UART är det nog som sodjan säger att den också sköter TRIS-registret själv. Ska man säremot bitbanga via en egen rutin måste man självklart se till att TRIS står rätt.
Om man använder en färdig funktion i ett högnivåspråk är det en självklarhet att den sätter TRIS-registret till vad som behövs. Använder man UART är det nog som sodjan säger att den också sköter TRIS-registret själv. Ska man säremot bitbanga via en egen rutin måste man självklart se till att TRIS står rätt.
$tiff, jo visst... 
Men från ditt första inlägg kunde man tro att man skall *ändra* TRIS beroende på riktningen på I2C trafiken. Med mitt inlägg ville jag bara säga att jag inte tror det. Detta har inget med högnivåspråk att göra, det handlar om hur processor i sig fungerar. Och jag sa ingenting om någon UART...
Slutligen, om man skall bitbanga så är det enklare att köra SPI, men det var väll inte aktuellt här ?

Men från ditt första inlägg kunde man tro att man skall *ändra* TRIS beroende på riktningen på I2C trafiken. Med mitt inlägg ville jag bara säga att jag inte tror det. Detta har inget med högnivåspråk att göra, det handlar om hur processor i sig fungerar. Och jag sa ingenting om någon UART...
Slutligen, om man skall bitbanga så är det enklare att köra SPI, men det var väll inte aktuellt här ?