ATTiny USI I2C inledning - en kraftfull, snabb och bekväm kommunikationsgränssnitt för ATTiny projekt! (6 / 8 steg)

Steg 6: ATTiny USI I2C kod genomförandet - USI I2C Master



The USI I2C Master (usi_i2c_master.c/h)-biblioteket tillhandahåller I2C master-läge funktioner med hjälp av USI hårdvara. Det finns två viktiga funktioner som användaren bör känna till. Först är funktionen initiering som sätter upp den SDA/SCL stift och USI hårdvara, och den andra är funktionen överföring som utför antingen en Läs- eller skrivåtgärd på en I2C meddelande, returnerar 1 (sant) om framgångsrika och 0 (falskt) om ett fel (fick en NACK) uppstod. En tredje funktion, överföringsfunktionen, används av funktionen transceiver skicka och ta emot data. Överföringsfunktionen bör inte användas utanför usi_i2c_master biblioteket.

Elöverföringsfunktionen tar två argument. Först är en pekare till en databuffert att skicka eller ta emot data från. Det förutsätts att den första byten i denna buffert är adress + R/W byten (övre 7 bitar adress, LSB är R/W). Detta byte, av protokoll, alltid överförs och aldrig fått. Resten av bufferten kommer antingen skickas eller fylld av mottagna data enligt R/W lite (1 för läsa, 0 för skriva). Det andra argumentet är den totala storleken på buffert (inklusive adress byte).

Här är ett kort exempel. Låt oss säga att vi vill skriva ut värdet 0x70 till den interna adressen 0x12 om anordning med adress 0x40. Först måste vi skapa en buffert för att lagra våra överföring:

char i2c_transmit_buffer [3],
char i2c_transmit_buffer_len = 3;

i2c_transmit_buffer [0] = (0x40 << 1) | 0 //Or'ing med 0 är onödiga, men för tydlighetens skull anges detta R/W-biten för en skriva.

i2c_transmit_buffer [1] = 0x12; Interna adress

i2c_transmit_buffer [2] = 0x70; Värde att skriva

Överföra meddelandet I2C
USI_I2C_Master_Start_Transmission (i2c_transmit_buffer, i2c_transmit_buffer_size);

Där har du det, meddelandeöverföring komplett! Det var lätt! Om du vill ha mer information om det inre arbetet med koden USI_I2C_Master, ta bara en titt inne i usi_i2c_master.c filen där jag har kommenterat i staterna, överföringsfunktionen och andra intressanta delar. Jag har gjort använda av en rad #define makron för att göra det mer klart vad varje rad ändamål.

I nästa steg, kommer jag att införa slavläge koden, som är betydligt mer komplex men också lätt att använda från en slutanvändare synvinkel. Jag har tagit en annan strategi på att genomföra den slav-kod som jag inte sett på några andra tutorials, det är intressant och användbar!

Se Steg
Relaterade Ämnen

Hur man bär DODOCase på huvudet snabba och bekväma

Hur man gör DODOCase wearable som oculus och bekväma utan extra verktyg eller komponenter.Detta hack i DODOCase bygga natten @ Kairo HackerspaceSteg 1: Hur man bär DODOCase snabbt: Steg 2: Hur till bära DODOCase och göra det bekvämt ur lådan:...

Knappen för snabb och bekväm selfie

Selfies är nu en del av vårt liv. Var och en vill ha deras selfie, även gruppen selfie. Människor bär stora stora tillbehör för det, som en selfie sticka med en fjärrkontroll för slutare. Här är en enkel metod att göra en knapp som hjälper till att t...

Snabb och enkel Shorts utan ett mönster

jag är trött på förstör fina shorts arbetar i trädgården så jag hittade några gamla denim i min tyg stash och piskade upp några snabba och bekväma shorts.Allt du behöver är:-tyg-sax-måttband-den person som kommer att bära shorts (att mäta)-Strykjärn...

Hur man gör en Bow - PVC båge - snabb och enkel

hur man gör en Bow - PVC båge - snabb och lättI denna video Visa jag dig stegen för att göra dig själv en enkel båge av pvc.Du behöver inte någon värme eller omarbetning av PVC: n att göra detta, bara några enkla kapning och sågning behövs.Denna båge...

Kraftfull trianglar och sfärer: papper plattan Buckyballs - 1: a klass knorra - vecka 7

"Kraftfull trianglar och sfärer: papper plattan Buckyballs" är den sjunde lektionen i 10 i veckan Tinkering serien erbjuds till första klass studenter. Med hjälp av vardagliga material i öppna projekt, omvandlar vi vanligt till det extraordinära...

Snabb och smutsig Guide till Mac

Alla alltid säga hur lätt Mac-datorer är att använda och sedan människor prova och använda dem och... de har ingen aning vad något är. Denna handledning är en snabb och smutsig guide på grunderna i OSX för nybörjare som antingen att byta till en mac/...

Hur man gör en kraftfull, snabb hornet!

Detta är min första Instructable, så alla kommentarer är välkomna (positiva och negativa, så länge jag får feedback!).Hur som helst, jag visar dig hur man gör en bra papper hornet! Jag ser en massa Instructables säga kan du bara göra bra hornets med...

3 snabba och enkla recept (del tre)

Detta är det senaste receptet i denna serie. Onekligen, detta är egentligen inte en måltid per-säga, är mycket snabb och enkel men den använder också bara 3 ingredienser. Denna gång: jordgubbsglass. De återstående två recept finns på min profil, elle...

Skapa din egen hemsida | Gratis, rolig, snabb och enkel

I detta instructable, du lära dig att skapa din egen hemsida med hjälp av en gratis, snabb och lätt att använda builder.Steg 1: Skapa en Wix.com kontoGå till Wix.com och klicka på logga in. Klicka på "Jag är en ny användare". Skriv ett mail och...

Snabb och enkel - Office Safe

om du har några kontanter som du håller vid skrivbordet men du inte vill att alla ska se eller få på det, här är ett enkelt sätt att ha det praktiskt men människor kommer aldrig gissa där du håller det!Snabb och enkel kontoret säker!Steg 1: Vad du be...

5 snabba och enkla livet Hacks! -del 1

5 fantastiska tips och tricks du kan använda för att imponera på dina vänner och göra ditt liv lite lättare.http://www.youtube.com/user/ValvexFTWI denna video ser du hur man;-Ladda din iphone nästan två gånger snabbare (100% säkert för din telefon)-T...

En snabb och smutsig Voulge

Ungefär ett år sedan byggde jag en snabb och smutsig spjut för mina vänner och jag att använda för bekämpning av falsade machete. Sedan dess har jag tänkt att göra en andra polearm. För några veckor sedan gjorde jag sist. Här är hur jag gjorde det.St...

Snabb och smutsig Mosquito Trap

Mygga säsongen närmar sig snabbt - göra en enkel fälla för billigt. Teorin är att ljuset lockar myggor och fläkten suger dem i påsen (vanligtvis fragmentering dem i processen). Detta instructable är i experimentell fas och kommer att uppdateras när v...

En snabb och enkel gåva för en kreativ matlagning hushåll - jag gjorde det på TechShop San Jose

jag har varit medlem i San Jose TechShop sedan de öppnade sina dörrar, det är en underbar plats att skapa och/eller förstöra (med avsikt att återskapa något bättre, mer om det i en annan ' ibble). Det är också en fantastisk resurs för snabb och enkel...

Snabb och enkel kyckling pastasallad

En enkel, friska, välsmakande Pastasallad med smör stekt kyckling och en hel del krispigt trädgård färska grönsaker slängt i en lätt krämig yoghurt dressing kryddat med italienska örter är en uppfriskande sallad som är längtade efter för.Serverar : 2...

Snabb och lätt Orange Drink

denna snabb och enkel dryck kommer garanterat att bli en favorit vädret din på en fest eller helt enkelt bara avkopplande hemma. Friskare än de flesta drycker dina vänner kommer att tacka dig och frågat om receptet.Med möjlighet att lägga din favorit...

Snabb och enkel EasyUp portabla tält förankring

Slutresultatet på bilden.Vi bor i Florida, av EasyUP...Här är min EasyUp snabb och enkel ankring system. Till skillnad från typiska sträng och stakes eller sträng och vissa tung förankring material som en båt ankare, kräver detta en ingen sträng, ing...

Hur man gör snabb och lätt modell tråd träd

denna guide tar dig genom stegen för att skapa snabb och enkel modell tråd träd. Dessa träd är bra för modelljärnväg, arkitektoniska och landskapet modeller, eller helt enkelt för dekoration i ditt hem (om du gillar sånt). Dessa instruktioner tar dig...

Snabb och lätt pressad blomma ljus

Dessa ljus är super snabb och lätt, och gör stora gåvor för människor.För att titta på dem, skulle du tro att de tar en hel del färdigheter och tålamod - att trycka blommor för veckor sedan mödosamt placera dem i formar, innan du avslutar dem noggran...