Ultrasonic måttband (7 / 13 steg)
Steg 7: Genomföra de I²C rutinerna
Det är mycket viktigt att komma ihåg, att vi pratar om en slav enhet här, låt oss ha detta i åtanke.
Om du väljer att skriva funktioner för detta, är dessa de funktioner du bör genomföra.
void AckI2C (void)
Denna funktion är ansvarig för att ACK-biten, och skicka den. Erkänna skickas för varje byte, har framgångsrikt tagit emot vår slav
void IdleI2C (void)
Gör bussen gå sysslolös
Tom CloseI2C (void)
Stänger I²C bussen, ingen ytterligare överföring görs, inte förrän en OpenI2C() kallas
unsigned char ReadI2C (void)
Läser på bussen och returnerar värdet tas emot
unsigned char DataRdyI2C (void)
Signalerar en komplett data transaktion
unsigned char WriteI2C (unsigned char)
Skriver ett byte till I²C bussen
Tom OpenI2C (unsigned char, unsigned char)
Öppnar och konfigurerar MSSP modulen för I²C kommunikation
Som jag redan sagt, jag kommer att använda databladet kort för att göra detta arbete: jag aktiverar SSP1 avbrott, och behandla allt I²C med i avbrottstjänstens rutin. Eftersom denna ansökan är inte kritisk tid, kommer inte att detta ge oss för mycket problem. Kolla in min avbrottstjänstens rutin som hanterar I²C kommunikation:
Ett paket som liknar det för utbytet av uppgifter:
En bild av styrelsen visar grejer vi befalla honom att:
PICKIT levererar ström till kretsen. Jag läste om det, som den maximala ström som den kan ge är runt 30 mA. Jag säga, det är en ganska bra förbrukning för en krets med 32 LED-s!
Detta gjort, vi har en PIC, som svarar på I²C kommandon. Den nya kringutrustningen som vi just skapat kommer att användas i vårt ultraljud mätning tejp.