Lite Banging med Raspberry pi för I2C kontroll med perl



Första lite allmänna bakgrund

Att använda många av I2C till parallellporten IC med Raspberry pi du behöver för att kunna manipulera data lite klokt. Gör oftast du i en micro controller, men med pi finns det mycket mer makt att göra andra saker så när du behärskar lite kloka manipulation av data du kan bygga mycket kraftfulla verktyg. En mycket vanlig bit kloka uppgift är att växla lite. För exempel om vi har en bank av reläer 0010_0100b och vill växla den tredje stycke som för närvarande är en en till en nolla sättet att göra det är med en exklusiv eller operation lite kloka. I Perl detta sker med den "^" morot symbol, där varje bit är eller individuellt. När du gör denna operation finns det en nyckel värde som vi använder kallas en "mask" för att representera den bit eller bitar som vi vill driva på.

Den allmänna formeln kommer att vara följande

Current_status_byte ^ mask_byte = New_status_byte

--------------------------------------------------------------------------------------------

Här följer ett exempel på de binära värdena där vi vill växla den tredje stycke i status_byte

0010_0100 ^ 0000_0100 = 0010_0000

och om vi upprepa detta igen kan vi växla lite tillbaka på.

0010_0000 ^ 0000_0100 = 0010_0100

------------------------------------------------------------------------------------------------

En annan gemensam sak att göra är att rensa lite som vi kan göra på samma sätt med lite kloka och funktion. Detta ser allmänt liknande, men vi måste växla mask för denna operation

Current_status_byte & mask_byte_inverted = New_status_byte

För numeriska exempel

0010_0000 & 1111_1011 = 0010_0000

Nu emellertid om vi gör det igen, lite inte växla vistelser klart

0010_0000 & 1111_1011 = 0010_0000

------------------------------------------------------------------------------------------------

I en idealisk värld skulle du troligen vill ha en mask byte och komplettera den mask lite i formeln så att du kan växla eller rensa med samma mask lite. med lite kloka Invertera. Här är ett sätt att ändra klart så du kan använda samma mask för båda

0010_0000 & ~ 0000_0100 = 0010_0000

Se Steg
Relaterade Ämnen

Bygga en Robot med Perler pärlor

Inte du hatar när en rubrik lovar du något som författaren inte kan leverera senare? Jag antar att jag är skyldig till att. Naturligtvis bygga du inte en robot med perler pärlor. Men du kan bygga något som ser ut som en robot. Så här går vi:Steg 1: V...

Donkey Kong hylla med Perler pärlor

Hej, alla! Välkommen till min andra instructable! (Jag är fortfarande ung, så vänligen inte vara oförskämd) Idag ska jag visa dig hur man gör en Donkey Kong tema hylla med Perler pärlor.Mamma säger: "vi gör inte hela hyllan med Perler pärlor, bara an...

Lätt Rainbow vävstol armband med Perler pärlor handledning

denna video tutorial ska show dig hur lätt det är att göra en rainbow vävstol armband med perler pärlor. Detta mönster är bra för nybörjare.Att komma igång med detta projekt du kommer behöver en regnbåge vävstol (och krok), rainbow vävstol band och p...

1979 bang & Olufsen Raspberry Pi Internet Radio

detta är en 1979 Bang & Olufsen Beocord 1500 kassettbandspelare som jag har konverterat in i en fristående Raspberry Pi internetradio. De analoga VU-mätarna drivs av Pi via en DAC (Digital till analog omvandlare) krets, med aktuell tid, station och s...

LITE glitter med en hemlighet: återvinna crafting

Som om detta jeweled tillbehör inte är söt nog, men roligare har det en hemlighet: en liten lucka i ryggen att dölja en anteckning eller en bild på någon speciell. Och vi återvinning med hjälp av en gammal squeeze kapsyl.Använd dessa meddelande medal...

Spara (lite) vatten med en 3D tryckta toalett sjunka!

Inte länge sedan jag såg en instructable om hacking en toalett gratis vatten och jag ville se om jag kunde göra min egen version med 3D-skrivaren.Sammanfattningsvis är ett "toalett handfat" bara en enkel VVS hacka som låter dig tvätta händerna m...

Pointilist Edge Lit kort med Auto On/Off Switch

Flera månader tillbaka, ville jag skicka ett tackkort till folk på instructables HQ för att jag umgås med dem under Maker Faire. Jag visste att ett köpta kort bara inte skulle göra, så mitt sinne omedelbart vände sig till den kanten lit kort skapad a...

Hur: Lite eld med endast Botteld vatten...

Om du gillar detta Instructable, och uppskattar sann överlevnadsteknik, Vänligen rösta för det!Hej, TrollFaceTheMan här att visa dig hur man startar en brand från något så enkelt som en flaska vatten...Hur kan du göra detta du kan fråga..? Väl där ko...

DIY Crocheted halsband ett armband med perls

Jag kollade min materiella låda och det finns många pärlor. Så fick jag idén att virka den pearly till halsband och armband.Du behöver:Pärlor (större hål)Färgade sträng (t.ex vaxad bomull trådar eller MACRAME garn etc.)virknålJag blandade bara ljusa...

Kolla vädret med Wolfram språk + Raspberry Pi (författare: Arnoud Buzing)

Detta inlägg visar hur man använder en väderstation modul med Wolfram språket på en Raspberry Pi.För att återskapa detta experiment behöver du följande hårdvara (förutom Raspberry Pi själv):Raspberry Pi väderstation styrelseSteg 1: Konfigurera din Ra...

Raspberry Pi Cloud IP-kamera med POE

Jag blev inspirerad av scavix's arbete med instructable Raspberry Pi som låg-kostnad HD övervakningskamera så jag bestämde mig att göra min egen Raspberry PI-baserad IP-kamera som också har POE och stödjer integration med Google Drive.Den video ström...

Gränsyta för PS2 controller med AVR-bitars Bang

Hej vänner i detta instructable jag kommer att visa dig hur gränssnittet sony PS2 controller med AVR microcontroller. Detta kommer att vara din hands kod som du kan användas i framtiden att styra robotar. Du kan få analoga värde från joystick som kan...

Trådlös jul Light Timer med Raspberry Pi och Python

Uppdatera 1/14/2014: Tack till alla som röstade för det här projektet i hårdvara Hacking Contest! Ser fram emot min nya maker penna.Uppdatering 12/31/2013: Letar du efter en mer avancerad version av detta projekt? Kolla in min nya flerkanaligt röstst...

Biometria de las venas de la mano. Raspberry Pi + LCD-I2C

Biometria de las venas de la mano. Raspberry Pi + LCD-I2CIntroducciónLas preocupaciones sobre el robo de identidad persisten porque la huella, al ser el identificador biométrico más utilizado, es también el que en más Tecnicas fraudulentas ha afronta...

Lite fånigt kul med LED

Fler elektroniska Wearables projekt med LED!Steg 1: Lite fånigt kul med lysdioderChef till Dollar store och ta en massa skräp (inte hårt) som bokljus (de kommer med batterier och en strömbrytare!), pannband, tofflor... Gå bredvid dörren (det finns of...

Glöd i mörk burk, med lite extra.

jag är billig, inte som slinka billigt, men billiga som "holy shit det är endast.99 cent, jag köper 5 av dessa billigt." Men om det har gratis det är desto bättre, och om jag kan göra det själv dem av Gud jag har funnit den heliga Graalen. Så nä...

Lite smällar och booleska matematik utan matten

ÖversiktNär jag är lite smällar eller programmera mikrokontrollers, ibland jag verkligen vill fokusera på hur lite mönster ser ut, riktigt visualisera nollorna och ettor gör. Men att göra matten i många fall distraherar min uppmärksamhet från den akt...

Raspberry pi analog till digital A/D omvandling styrelsen och GUI spänning display

Detta instructable handlar om uppförande och drift av en 16/18 BIT 4-kanals "differentiell" A/D ombord. Det är baserat på MCP3428/MCP3424 och kommunicerar Raspberry PI via I2C. Designen var valt att tillåta antingen en styrelse eller ett nummer...

Komma igång med Ubuntu Linux

Linux har operativsystemet (OS) för datorn kunniga sedan starten, men under de senaste åren med lanseringen av små linux baserade fysiska datorplattformar som Raspberry Pi, BeagleBone och Arduino Yun (bland många andra) har det varit en explosion av...