Interaktiva 3 Serial E-Proms



jag uppdaterat mitt program med full insert och delete. Inget nätverk eller display. Utan plus formatering. Bara en bra E-Prom redaktör. Kontrollera att du har strängar innan du använder Infoga eller ta bort. Det tar tid att köra insert och delete. Jag läste och sedan skriva varje sträng till sin nya plats. Mitt program kontrollerar inte begränsningar på något.

Adressen är mycket viktigt. Om din adress är avstängd av några byte kommer du att förlora de byte från framsidan eller baksidan av din sträng. Inga fel hända. Denna 16 * tmp5-1 ser OK ut. Det är inte OK. Grundläggande frimärken är strikt kvar till rätt matematik. Grundläggande stämplar 2s tillåta parenteser som 16 * (tmp5-1). Med detta 16 * tmp5 – 1 är faktiskt (16 * tmp5) – 1 och du skulle vara 1 adress. I detta fall förlorade jag den första bokstaven i en sträng jag redigerade.

Matematik kan vara roligt. Den grundläggande stämpel 2s stöder negativa tal, men du måste vara försiktig med dem. Om du har två variabler räknar ner och du jämför dem tmp3 > = tmp4. Om tmp3 når 0 och subtraktion 1 det kommer att vara negativa och mer än tmp4. Sätta ett felsökningsuttryck på tmp3 och se där det går. Mitt mål är i detta fall tmp5. Jag ändrade det till tmp4 > = tmp5 och låt tmp3 gå till 0. Jag justerade sedan tmp5 av – 1 för den 0 baserat strängmatris. Nollor är inte bra för matematik eller jämföra.

Det viktigaste du behöver för en interaktiv sak är minne. Det billigaste och enklaste minnet för att använda är en seriell E-prom. Vad är en E-prom? Det är en eclectically programmerbara och eclectically raderbart minne med ett seriellt gränssnitt. E-Proms hålla deras minne när strömmen är avstängd. E-Proms kan du programmera minnet. Vanligtvis tio miljoner eller så cyklar. Läs din manual. Du kan lagra nästan vilken typ av data i ett E-Prom. Jag önskar jag hade vänner att dela detta med. Jag kommer att arbeta på LCD-skärmar och typ av en dum terminal att visa hur lätt det är att ansluta dina idéer till ditt folk.

Koden är EPromEW6.txt. Du måste ändra den till EPromEW6. bs2 för det att köra. Zip-filen har fil och bilder.

De flesta E-Proms är Byte storlek minne matriser. Den största användaren av minne är svider som quinquennial "Hello World". Strängarna är en matris med byte i processorns minne. Strängarna är väl lämpade för E-Proms. I detta exempel är min följetong E-Prom 2048/8 eller 16 K med 128 16 Byte sidor. Ja, 128 strängar. Liksom de flesta seriella enheter har E-Proms en processor som har ställts in att skriva och läsa minnesmatrisen. Du styra dem med kommandon och indata- och leads. Timing är allt.

Du behöver en hel del stift att använda en seriell E-Prom när du skriver till minne. Stiften: SO byte utgång, SI byte Input, CK klocka och CS Chip Välj. Jag använder separata pins för SO & SI att skydda min E-Prom. Du använda kommandon säga E-Prom vad du vill göra. För att läsa en Byte du sänka CS och skicka i ett Read-kommando. "ShiftOut epRead\8, erAddr\16." \8 berättar ShifOut att skicka 8 bitar totalt. Så 32 är 100000 är bara 6 bitar. \8 gör det 00100000 och det är 8 bitar. Det är vad E-Prom behöver. Behandlingen är en kontinuerlig ström av byte så länge du ger klocka pulser. "At myStr(tmp1)." Du kan använda en adress med kommandot Läs. Varje sida är 16 byte. Så 32 är sidan 1. Kom ihåg att E-Prom minnet är nollbaserat och strängar är noll avslutas.

Att skriva är lite mer komplicerat. Du håller skriva skydda och hålla pins hög du ställa CS låg och skicka in en skriva aktiverar kommandot. "SHIFTOUT epSi, epCk, MSBFIRST, [epWrtEN\8]". Sedan höja du CS paus 5ms och sedan lägre CS paus 5ms. Som kommer in kommandot till E-Prom. Du skicka i en Write-kommandot. "SHIFTOUT epWrite\8, erAddr\16." Skriftligen måste du oftast att skriva alla 16 byte i ett kommando och avsluta det korrekt. I en loop "SHIFTOUT myStr(tmp1)." Då jag pausa 5ms och höja min CS att säga E-Prom skriva min data. Du måste vänta eller E-Prom kan krascha. Om du vill återställa E-Prom sänka du CS vänta 5ms sedan höja upp CS vänta 5ms då sänka CS och fortsätta med dina kommandon. Jag hålla min CS låg med en 10K resistor till marken.

E-Prom har också en skriva skydda PIN-kod. Med detta stift låg kan du inte skriva till E-Prom. Det har också ett tag stift att när den är låg E-Prom är avstängd. Du kan skriva skydda en fjärdedel, hälften eller allt minne med statusflaggor. Jag hålla skriva skydda och hålla ansluten till VDD.

Adressering är obligatoriskt och lätt. Min adress är på 16 Byte gränser så det är lätt. Du kan skriva alla 16 byte sida i minnet som du behöver och inget annat påverkas. Verkligt minne på 128 16 byte strängar. Kom ihåg att minnet är nollbaserat och strängar är noll avslutas. Sträng 1 är faktiskt sträng 0. All min sträng numrering är 1 baserat. Mitt program hand tar om detaljer. MyStrS är hur många strängar har jag i mitt program epAddr är sträng redigeringspunkt. Visa strängarna börjar vid 0 och går om myStrS numrering varje sträng. Sammanlänkade strängar endast den första strängen får ett nummer. Sub strängar bara den första får ett nummer.

En sak om sträng hantering är att de flesta system använder noll avslutade strängar. Det innebär att den sista byten i "Hej World0" är en noll-Byte. En 16-bytematris innehar 15 tecken och en avslutande nolla. Också är de flesta Byte arrayer nollbaserat. Det är den första positionen är noll och sist är 15. För stings ska kännas igen måste du se till att är nollan på rätt plats. Du kan använda bara en 16 byte-array för allt. Bara flytta dem till framsidan och avsluta dem för korta strängar. Resten av strängen ignoreras. Hålla reda på din position. När du sammanfogar en sträng till nästa sträng kan du inte använda alla 16 byte. Varför? Rutinen produktionen behöver fortfarande den första strängen avslutas.

Andra data måste formateras för att passa in i en Byte-array. Ett ord har 16 bitar eller två byte. En hög Byte och en låg Byte. Byxa eller dubbel har 32 bitar eller fyra byte. Byte 3, Byte 2, Byte 1 och Byte 0. Du bygga formatters för att ta hand om denna typ av data. Lagra dem Byte för Byte i den ordning du. Som övre Byte då låg Byte. Ladda dem tillbaka på samma sätt. Minnet av de flesta processorer är 16 bitars sidor. Ordet storlek minne som kan brytas ner till byte och på vissa ner till de nationella genomförandeorganen eller bitar för variabler. När du lagrar en Word variabel har du vanligtvis tillgång till dess byte som variabler till.

Vissa processorer har bra sträng hantering funktioner. Jag använder en Parallax.com Basic Stamp 2 för detta exempel. De kommandon som används är Debug, DebugIn, SerIn och SerOut. Debug och serOut är samma funktion i de flesta avseenden de bara gå till olika platser. Du kan ange en sträng använda du en STR formatter som ser för teckensträngar. "DebugIn STR time\15\13" söker och ingångar en sträng upp till 15 tecken långa att laddas in i en Byte array tid när användaren trycker på Enter(13). Om strängen är mindre än 15 tecken då fylls de återstående tecknen med nollor. Strängen "Hej" skulle vara "Hello00000000000" i minnet. "Debug STR tid" skriver ut "Hej". Den första nollan avslutar strängen och resten ignoreras.

Nummer kan vara roligt. Ingående formatters är för teckensträngar. "DebugIn DEC tid" ser på strängen "hello123bye" och konverterar den till nummer 123 och placerar det i den varierande tid. Det ignorerar resten. Användbar för många interaktiva saker. För byte matriser använder du kontrolltecken som noll som en terminator i slutet av strängar. Du skapar andra styrtecken för att passa dina behov. Jag använder de "+" till separat kort sjunger och gå med lång sträng i min utgång rutiner. Korta strängar kan sättas ihop vanligtvis framsidan E-Prom. Femton tecken är aldrig tillräckligt. Du kan skapa alla typer av kontroller i produktionen rutiner.

Mitt program: knappen går in i kommando-läge. Ange ett kommando och tryck på enter på tangentbordet. Du kan inte behålla dessa små processorer väntar på indata. De är benägna att krascha. Du kör en active loop väntar en knapp vara intryckt. Mitt program lagrar den senaste adressen och sträng count i processorns EEPROM och laddar det början upp eller starta upp. Ange myStrs till noll för nya strängar och 1 för dina strängar som ska läsas in. Mitt program är en snabb sträng loader för en E-Prom.

Mitt program använder debug terminalen och en standard-knappen. Du trycker på knappen för att ange kommando-läge. Skriv dina synpunkter och tryck enter. Led ska blinka när väntar ett kommando. Kom ihåg att ange processorer EEprom när du avslutar en session.

Om du vill redigera kommandot dina strängar efter en re-boot 60 först läsa in din adress och sträng räknas i mitt program. Kommandot 10 in i en ny sträng efter den sista strängen. Kommandot 40 redigerar en sträng. När du är klar med dina strängar Använd kommandot 50 att skriva adress och sträng räkningen till EEprom. Använd redigeraren för att ändra myStrs till noll för nya strängar eller 1 eller högre för att ladda dina strängar och åter ladda programmet.

Arduino är bara för mycket roligt. Utmärkt sträng hantering.

PicAxe system: De har inte matriser. Endast x2 delar har en ShiftOut och ShifIn kommandon. Anteckningsblocket är ett tillfälligt minne för lagring av data som matriser. Endast på följande Picaxe marker PICAXE - 28 X 1, 40 X 1, 20 X 2 delar har 128 scratchpad byte (0-127) och PICAXE - 28 X 2, 40 X 2 delar har 1024 scratchpad byte (0-1023). Komma åt Scratchpad användning: pekaren är ptr = varians, indirekt adressering är "(efter increment) och" (postdecrement). Varje gång den "variabel namn används i ett kommando värdet av scratchpad pekaren ökas automatiskt med en. Detta gör den idealisk för lagring av en endimensionell matris av data. Se exempel i manualen.

At och ShiftOut: kommandot spiin (at också accepterade av kompilatorn) är en "lite-bang" metod för SPI kommunikation på de X1 och X2 endast delarna. Alla andra delar måste använda programmet prov ingår nästa sida om du vill duplicera detta beteende. En maskinvarulösning för X1/X2 delar finns kommandot "hshin". Eller du kan använda min doLights och checkLights från EasyLights.

Relaterade Ämnen

Interaktiva 1

behöver Life interaktion att leva. Maskiner måste program att interagera med oss. Program behöver anslutning att växa mer komplicerat. Seriell kommunikation är vad maskiner använder att växa. Seriell kommunikation är inbyggd i de flesta processorer....

Interaktiv Beer Pong (Beirut) tabell

har du någonsin spelat befunnit dig i en lång, tråkig omgång öl Pong som önskar det fanns lite mer spänning i spelet? Jag vet att jag har så jag bestämde mig att försöka göra pong spel lite mer spännande i vårt hus genom att göra denna interaktiva öl...

Arduino Lilypad interaktiva Passion Sensing halsduk

detta var första gången jag arbetar med en Arduino Lilypad. Jag har velat prova något som behandlats med mjuk kretsar under ett tag nu. Detta är vad jag kom med. Konceptet är baserat utanför min vän Ethan Dicks från theFusefactory.orgemergent får sku...

Interaktiva Magic Mirror med Candy Dispenser

för Halloween 2012 jag skapade en interaktiv Magic Mirror. Den magiska spegeln har en sonar (PING))) sensor som känner av när barnen är finns i närheten. Då spegeln säger några slumpmässiga fraser och sjunker automatiskt godis till hinken. Jag repurp...

4 x 4 x 4 interaktiva LED-cube med Arduino

för att förklara min 4 x 4 x 4 interaktiva LED-cube publicerade förut, lite mer klart, jag ska försöka att göra mitt första steg för steg instructable.Denna 4 x 4 x 4 kub är interaktiv med fyra hörnet lysdioder både som lysdioder och sensorer som rea...

Interaktiva omgivande ljus

detta är min första instructable!Tänk med mig medan jag kämpar för att skriva korrekt engelska. Rätta mig gärna!Jag började detta projekt bara efter "Låt det glöd" tävlingen började. Jag önskar jag hade gjort mycket mer och avslutade vad jag vil...

Enkel och billig DIY interaktiva bakgrundsbelysning.

Detta instructable visar dig hur man gör en enkel och billig atmosfär bakgrund belysningssystem för din dator!Detta enkla system kan användas med programvaran AtmoWin, eller använder AtmoLight plugin i VLC (mediaspelare) , ansluter den till datorn me...

Interaktiva 4 dum Terminal

att göra en dum Terminal ur en gammal DMC 16117A 1 x 16 LCD-display. Första sak att göra är att få ett seriellt gränssnitt för att Visa. Jag använder en SparkFun.com SerLCD för detta. 16117A har endast 14 kontakter och det är bra. Den 15 & 16 anslutn...

Interaktiv skulptur (talande dubbel huvud av rörande plasma boll)

HejJag kommer att Visa processen att göra förvirring, en känslomässig skulptur i form av ett huvud med två ansikten som talar confusions med åskådare när någon vidrör it´s neurotiska hjärnan, genom att röra vid det börjar omedelbart dela dess förvirr...

Interaktiva koppar

har du tänkt på en kopp som fungerar annorlunda beroende på vätska, temperatur eller mängden vätska i koppen?Detta är en grupp av interaktiva koppar. Vänstra (Cup 1) kan berättar skillnaden i vätskan du sätta i den och spela en viss låt för att vätsk...

Träna: En interaktiv fitness motivation system

I den här självstudiekursen kommer du använda Lilypad Arduino för att göra en interaktiv fitness motiverande system. Systemet använder en sensor för att samla in hälsodata från användaren, baserat på denna information, en visuell utdata visas på anvä...

Interaktiva Quilt

detta projekt är en hängande, interaktiva quilt för min 8-åriga dotter. Varje avsnitt av täcket kräver henne göra något för att aktivera antingen ljus eller ljud.Material som behövsFör täcke:Tyg-5 färger för bakgrund-Säkerhetskopiera & bindande (ca 1...

Interaktiv skulptur: din våg av lycka

Din våg av lycka dess en interaktiv skulptur som genererar en sprudlande och färgglada ljusvåg när folk går på den. Arbetet är en del av psykosomatiska Series.Work utvecklades under konst residens på kreativitet och kognition studiorna på UTS, Univer...

Interaktiva barns mobil

vad kan du göra med fluorescerande akryl som inspiration? Vi valde att göra en glöd-in-the-dark baby mobil, med en åtföljande leksak. Detta projekt genomfördes som en del av klassen Computing och hantverk på Olin College of Engineering.Material:-Basm...

Äventyr i El: en interaktiv ljus diorama

varifrån kommer El? Vem uppfann glödlampan? Hur städer använder denna teknik idag?Det är bara några frågor som vi hoppas till adress i denna interaktiva diorama, äventyr av El!Detta projekt utformades i undervisningssyfte så att yngre generationer ka...

Interaktiva LED labbrock

detta är en instructable för den interaktiva LED Lab rockar, utställningsmonter på Autodesk University.Kolla in filmerna nedan! Först är en demo av färgerna påverkas av knapparna. Andra är en demo av alkoholmätare! (detta kommer att förklaras senare)...

Interaktiv skulptur: filernas Data

Filernas Data är en känslig skulptur som utför ljus och ljud när känslan närvaron av människor.Det utvecklades under The School av maskiner, 2014 i Berlin. Maskiner som tillhandahålls av Fablab Berlin.Musiken gjordes av ungarna på hastighet.Steg 1: M...

Interaktiva Spider

Welkom,Hier ga ik je uitleggen hoe je jouw eigen interaktiva spider kunt maken.Grunden kennis van arduino är prettig maar geen vereiste om dit te ontwikkelen.IK zal alles stap voor stap uitleggen hoe je dit prototyp maakt.Steg 1: Arduino sv programme...

Röst aktiverat interaktiva pussel

Skapa en röststyrda pussel som kommer att göra räknande kul! Som du säger orden tänds "en, två, tre" LED lamporna en i taget. Detta projekt använder en speciell röst erkännande sköld (EasyVR 2.0) som program lamporna att slå på endast när de hör...