Interactieve 3 seriële E-Proms


ik mijn programma bijgewerkt met volledige invoegen en verwijderen. Geen netwerken of beeldscherm. Geen plus opmaak. Gewoon een goede E-Prom editor. Zorg ervoor dat u tekenreeksen hebt voordat u invoegen of verwijderen. Het kost tijd om het uitvoeren van invoegen en verwijderen. Ik lees en schrijf vervolgens elke tekenreeks naar zijn nieuwe plek. Mijn programma controleert niet voor beperkingen op om het even wat.

Het adres is heel belangrijk. Als uw adres is uitgeschakeld door een paar bytes, dan u deze bytes vanaf de voorkant of achterkant van uw tekenreeks verliest. Geen fouten gebeuren. Deze 16 * tmp5 – 1 ziet er OK. Het is niet OK. Fundamentele stempels zitten strikt aan juiste math. Fundamentele Stamps 2s toestaan haakjes als 16 * (tmp5-1). Met deze 16 * tmp5-1 is eigenlijk (16 * tmp5) – 1 en u zou het af door 1 adres. In dit geval verloor ik de eerste letter van de string die ik aan het bewerken was.

Wiskunde kan leuk zijn. De Basic Stamp-2s steunen negatieve getallen, maar je moet voorzichtig zijn met hen. Als u hebt twee variabelen aftellen en u hen tmp3 vergelijkt > = tmp4. Tmp3 0 bereikt als u aftrekken 1 zullen het negatieve en meer dan tmp4. Een debuginstructie zetten tmp3 en zien waar het gaat. Mijn doel is in dit geval tmp5. Mij gewijzigde op voor tmp4 > = tmp5 en laten tmp3 Ga naar 0. Vervolgens aangepast ik tmp5 door – 1 voor de 0 gebaseerde matrix van tekenreeksen. Nullen zijn niet goed voor math of vergelijken.

Het belangrijkste ding dat je nodig hebt voor een interactieve ding is memory. De goedkoopste en gemakkelijkste geheugen te gebruiken is een seriële E-prom. Wat is een E-prom? Het is een eclectisch programmeerbare en eclectisch uitwisbaar geheugen met een seriële interface. E-Proms houden hun geheugen wanneer de stroom is uitgeschakeld. E-Proms laat u opnieuw het programma van het geheugen. Meestal tien miljoen of zo cycli. Uw handleiding te lezen. U kunt vrijwel elk type van gegevens opslaan in een E-Prom. Ik wou dat ik had om te delen met vrienden. Ik zal werken op LCD-schermen en soort een domme terminal om te laten zien hoe gemakkelijk het is om uw ideeën verbinden met uw mensen.

Het codebestand is EPromEW6.txt. U moet het EPromEW6 wijzigen. bs2 voor het uit te voeren. Het Zip-bestand heeft het codebestand en foto's.

De meeste E-Proms zijn dat byte grootte geheugen matrices. De grootste gebruiker van geheugen is steken zoals de quinquennial "Hello World". Tekenreeksen zijn een matrix van bytes in het geheugen van de processor. Tekenreeksen zijn zeer geschikt voor E-Proms. In dit voorbeeld mijn seriële E-Prom is 2048/8 of 16 K met 128 16 Byte pagina's. Ja, 128 tekenreeksen. Zoals de meeste seriële apparaten hebben E-Proms een processor die is ingesteld om te schrijven en te lezen van de geheugen-matrix. U bepalen met opdrachten en input en output leidt. Timing is alles.

U moet een heleboel pinnen te gebruiken een seriële E-Prom wanneer u naar het geheugen schrijft. De pinnen: SO Bytes Output, SI Bytes Input, CK klok en CS Chip selecteren. Ik gebruik aparte pinnen voor SO & SI ter bescherming van mijn E-Prom. Opdrachten kunt u de E-Prom vertellen wat u wilt doen. Om te lezen van een bytewaarde u lagere CS en stuur een commando ' Read '. "ShiftOut epRead\8, erAddr\16." De \8 vertelt ShifOut voor het verzenden van 8 bits totale. Dus 32 100000 is is slechts 6 beetjes. De \8 maakt het 00100000 en dat is 8 bits. Dat is wat de E-Prom nodig heeft. Lezing is een continue stroom van Bytes, zolang u klok pulsen verstrekt. "ShiftIn myStr(tmp1)". U kunt een adres met de opdracht Lees. Elke pagina is 16 Bytes. Zo is het 32 pagina 1. Vergeet niet dat het E-Prom-geheugen gelijk is aan nul gebaseerd en tekenreeksen zijn nul beëindigd.

Schrijven is een beetje ingewikkelder. U houdt schrijven beschermen en Hold pinnen hoge stel u CS laag en versturen in een opdracht Write Enable. "SHIFTOUT epSi, epCk, MSBFIRST, [epWrtEN\8]". U breng CS pauze 5ms en vervolgens lager CS pauze 5ms. Dat treedt de opdracht in de E-Prom. Vervolgens Stuur je een commando ' Write '. "SHIFTOUT epWrite\8, erAddr\16." Schriftelijk moet u meestal alle 16 bytes schrijven in één opdracht en het correct beëindigen. In een lus "SHIFTOUT myStr(tmp1)." Toen ik 5ms pauzeren en verhogen mijn CS om te vertellen van de E-Prom om mijn gegevens te schrijven. U moet wachten of de E-Prom vastloopt. Als u de E-Prom opnieuw wilt lager u CS wachten 5ms vervolgens CS wachten 5ms verhogen dan verlagen van CS en blijven met uw commando's. Ik houd mijn CS laag met een 10K Ohm weerstand op grond.

De E-Prom heeft ook een pin schrijven beschermen. Met deze pin laag kan je niet schrijven naar de E-Prom. Het heeft ook een Hold-pin dat wanneer het slinkt de E-Prom uitgeschakeld is. U kunt schrijven een kwart, half of al het geheugen met statusvlaggen beschermen. Ik houd Schrijf beschermen en Hold verbonden met VDD.

Aanpakken is verplicht en gemakkelijk. Mijn adres is op 16 Byte grenzen, dus het is makkelijk. U kunt elke pagina 16 bytes van het geheugen dat u wilt en niets anders wordt beïnvloed. Echt werkgeheugen op 128 16 byte snaren. Vergeet niet dat het geheugen is nul gebaseerd en tekenreeksen zijn nul beëindigd. Tekenreeks 1 is eigenlijk reeks 0. Al mijn string nummering 1 gebaseerd is. Mijn programma zorgt voor de details. In mijn programma epAddr is de tekenreeks bewerkingspunt en myStrS is hoeveel snaren heb. Weergeven van de snaren begint bij 0 en loopt al myStrS nummering van elke tekenreeks. Aaneengeschakelde tekenreeksen alleen de eerste tekenreeks krijgt een nummer. Sub snaren alleen eerste een nummer krijgt.

Één ding over tekenreeks behandeling is dat de meeste systemen tekenreeksen met nul beëindigd gebruiken. Dat betekent dat de laatste Byte in "Hallo World0" een nul Byte is. Een 16 Byte-matrix heeft 15 tekens en een afsluitende nul. Ook zijn de meeste Byte-matrices nul gebaseerd. Dat is de eerste positie gelijk is aan nul en de laatste is 15. Voor steken om erkend te worden moet u ervoor zorgen dat is de nul op de juiste plaats. U kunt slechts één 16 byte-matrix gebruiken voor alles. Voor korte snaren gewoon verplaatsen naar de voorkant en hen beëindigen. De rest van de tekenreeks wordt genegeerd. Bijhouden van uw positie. Als u een tekenreeks naar de volgende tekenreeks zijn tekstoperatoren kunt u niet alle 16 bytes. Waarom? De uitvoer routine moet nog de eerste tekenreeks beëindigd.

Andere gegevens moet worden opgemaakt om te passen in een bytematrix. Een woord heeft 16 bits of twee Bytes. De Byte in een hoge en een lage Byte. Longs of tweepersoonskamers hebben 32 Bits of vier Bytes. Byte 3, Byte 2, Byte 1 en 0 Byte. U bouwt formateurs om te zorgen voor dit type gegevens. Deze Byte voor Byte in een order die u wilt opslaan. Zoals hoge Byte dan lage Byte. Laden ze terug de zelfde manier. Het geheugen van de meeste processors is 16 bit pagina's. Word formaat geheugen dat kan worden uitgesplitst in Bytes en op sommige naar de Nibs of Bits voor variabelen. Wanneer u opslaan van een Word-variabele hebt meestal u toegang tot haar Bytes als variabelen.

Sommige processors hebben goede string handling functies. Ik ben met behulp van een Parallax.com Basic Stamp 2 in dit voorbeeld. De opdrachten gebruikt zijn Debug, DebugIn, kanarie en SerOut. Debug- en serOut zijn dezelfde functie in de meeste opzichten die ze gewoon gaan naar verschillende plaatsen. Input string u een STR formatter die naar tekenreeksen zoekt. "DebugIn STR time\15\13" zoekt en input die string tot 15 tekens lang dat het laadt in een Byte-matrix tijd wanneer de gebruiker op Enter(13). Als de tekenreeks minder dan 15 tekens is worden worden de overige tekens gevuld met nullen. De reeks "Hallo" zou "Hello00000000000" in het geheugen. "Debug STR tijd" afdrukken "Hello". De eerste nul Hiermee beëindigt u de tekenreeks en het overige wordt genegeerd.

Getallen kan leuk zijn. De input formateurs zijn voor tekenreeksen. "DebugIn DEC tijd" kijkt naar de tekenreeks "hello123bye" en zet deze om in het nummer 123 en zet het in de variabele tijd. Het gaat voorbij aan de rest. Handig voor een heleboel interactieve dingen. Voor Bytes arrays gebruikt u controlekarakters zoals nul als een afsluitweerstand aan het einde van tekenreeksen. U maakt andere besturingstekens aan uw behoeften. Ik gebruik de '+' om aparte korte zingt en lange reeks deelnemen aan mijn output routines. Korte snaren kunnen worden samengesteld gewoonlijk aan de voorkant van de E-Prom. Vijftien tekens zijn nooit genoeg. U kunt allerlei soorten besturingselementen in output routines.

Mijn programma: de knop invoert opdrachtmodus. Voer een opdracht en druk op enter op het toetsenbord. U kunt niet houden deze kleine processoren die wacht op een invoer. Ze zijn gevoelig voor het crashen. U voert een actieve lus die wachten op een knop worden ingedrukt. Mijn programma slaat het laatste adres en de telling van de tekenreeks in de EEPROM van de processor en het omhoog laadt op start of opnieuw op te starten. Stel myStrs in op nul voor nieuwe snaren en 1 voor uw snaren worden geladen. Mijn programma is een snelle tekenreeks loader voor een E-Prom.

Mijn programma gebruikt de debug-terminal en een standaard knop. U op de knop om de modus van de opdracht. Typ uw input en druk op enter. De led moet knipperen wanneer een opdracht te wachten. Vergeet niet om de processors EEprom ingesteld wanneer u een sessie beëindigen.

Als u wilt bewerken uw koorden na een opnieuw op te starten met opdracht 60 eerst te laden uw adres en tekenreeks tellen in mijn programma. Opdracht 10 zal een nieuwe tekenreeks na de laatste tekenreeks invoeren. Command 40 bewerkingen een tekenreeks. Wanneer u klaar bent met uw snaren opdracht use 50 het adres en tekenreeks tellen naar de EEprom te schrijven. Gebruik de editor om myStrs naar nul voor nieuwe strijkers of 1 of hoger te laden uw koorden en re-vracht naar de programma.

De Arduino is gewoon te leuk. Uitstekende tekenreeks behandeling.

Picaxe systemen: Ze hebben geen matrices. Alleen de x2 delen hebben een ShiftOut en ShifIn commando's. De Kladblok is een tijdelijk-geheugengebied voor opslag van gegevens, zoals arrays. Alleen op de volgende Picaxe chips PICAXE - 28 X 1, 40 X 1, 20 X 2 delen hebben 128 bytes van de Kladblok (0-127) en PICAXE - 28 X 2, 40 X 2 delen hebben 1024 Kladblok bytes (0-1023). Toegang tot het gebruik van Kladblok: Set de aanwijzer is ptr = var, indirecte adressering is ' (post increment) en ' (postdecrement). Elke keer dat de ' variabelenaam wordt gebruikt met een opdracht die de waarde van de Kladblok-aanwijzer wordt automatisch verhoogd door een. Dit maakt het ideaal voor opslag van een één-dimensionale array van gegevens. Zie het voorbeeld in het handboek.

ShiftIN en ShiftOut: de spiin (shiftin ook geaccepteerd door de compiler)-opdracht is een 'bits-bang'-methode van SPI mededeling over alleen de onderdelen X1 en X2. Alle andere delen moeten gebruiken het steekproefprogramma ommezijde opgenomen om dit probleem is verholpen. Zie de opdracht 'hshin' voor een hardwareoplossing voor X1/X2 onderdelen. Of u kunt mijn doLights en checkLights van EasyLights.

Gerelateerde Artikelen

Interactieve 1

Interactieve 1

leven moet interactie te leven. Machines moeten programma's om te communiceren met ons. Programma's moeten connectiviteit groeien ingewikkelder. Seriële communicatie is wat machines gebruiken om te groeien. Seriële communicatie is ingebouwd in de mee
Interactieve 4 domme Terminal

Interactieve 4 domme Terminal

maken van een domme Terminal uit een oude DMC 16117A 1 x 16 LCD-scherm. Eerste ding om te doen is om een seriële Interface voor het display. Ik ben met behulp van een SparkFun.com SerLCD hiervoor. De 16117A heeft slechts 14 connectoren en dat is fijn
Het opnemen van Audio met canon 7d / 5d kwesties - Video modus interactieve handleiding

Het opnemen van Audio met canon 7d / 5d kwesties - Video modus interactieve handleiding

Audio-opnamen met de Canon 7D. Onderdeel van de canon 7D / 5D interactieve tutorial-serie. Houd een oogje op deze wiki voor 7D versieinfo voor toverlantaarn ingebouwde programmatuur. http://magiclantern.wikia.com/wiki/ma...
Muurschildering van interactieve Spacelady

Muurschildering van interactieve Spacelady

Spacelady is een interactieve, Arduino-gecontroleerde LED muurschildering. Met behulp van een Capacitieve touch sensor, triggert de Arduino lichten en geluiden als koper tape pads zijn geraakt. Om te begrijpen van de functionaliteit van deze muurschi
Interactieve Halloween pompoen (Arduino gebaseerd)

Interactieve Halloween pompoen (Arduino gebaseerd)

HET IDEEEen pompoen die gloeit, schudt en schreeuwt... [video]Het is Halloween, dus natuurlijk, dat we moesten een project die verband houdt met die.Het idee is om een pompoen, die zintuigen van de aanwezigheid van een persoon die probeert te krijgen
Interactieve Multitouch Display

Interactieve Multitouch Display

tussen de Apple iPhone en Microsofts interactieve tabel, multi-aanraking displays zijn al de woede. Dit instructable zal u tonen hoe om te zetten uw beamer in een tabel van de interactieve multi-touch-display met behulp van een paar goedkope onderdel
Interactieve Bluetooth Mood Lamp

Interactieve Bluetooth Mood Lamp

Voor onze laatste Project van elektronica bouwden we een interactieve stemming-lamp, die bouwt op een vorige project (Zie voor een versie 1), maar het verschil is dat de gebruiker met de lamp via bluetooth communiceren kan! Wie moet een potentiometer
De interactieve donatie Box

De interactieve donatie Box

Donatie vakken kunnen veel meer interessant en aantrekkelijk wanneer u ze met elektronica en een beetje van programmeren combineren. Dit instructable zal u tonen hoe te. Zoals de naam verklaart, kan donatie vakken interactief te maken u helpen veel m
Interactieve LED Beer Pong tafel

Interactieve LED Beer Pong tafel

Maak uw eigen interactieve LED Beer Pong tafel!Dit instructable zal u door alle stappen te begeleiden om het maken van een one-of-a-kind bier pong tafel compleet met kopje opsporen van RGB peulen, automatische bal sluitringen, een 32 x 12 ping pong b
Interactieve beeldhouwkunst: uw golf van geluk

Interactieve beeldhouwkunst: uw golf van geluk

Uw golf van geluk zijn een interactieve sculptuur dat een uitbundige en kleurrijke lichtgolf genereert wanneer mensen op het lopen. Het werk is onderdeel van psychosomatische Series.Work ontwikkeld tijdens Art in residence bij creativiteit en cogniti
Maak een interactieve Living Wall

Maak een interactieve Living Wall

dit instructable is gemaakt als onderdeel van het eindproject vereiste in de CS afgestudeerde cursus "Tastbare Interactive Computing" aan de Universiteit van Maryland, College Park onderwezen door Professor Jon Froehlich. De cursus gericht op he
Interactieve Fuzzy LED riem

Interactieve Fuzzy LED riem

Dit is een Instructable om u te tonen hoe maak je een interactieve, fuzzy LED-riem! Riem kan worden in menig opzicht gebruikt, niet alleen als een gordel... dragen als een bandolier, hang het op de muur, wikkel het rond je rugzak of fiets... de optie
Ember (interactieve virtuele kampvuur)

Ember (interactieve virtuele kampvuur)

Ember is een interactieve installatie, die de Gemeenschap door middel van een kampvuur-achtige cirkel van houten stoelen die het genereren van muziek uit de aanwezigheid van een bezoeker verkent. Elke zetel in de cirkel is een instrument, dat wordt e
Interactieve Child's mobiele

Interactieve Child's mobiele

wat kun je met fluorescerende acryl als de inspiratie?  We kozen een glow-in-the-dark-baby mobiel, met een begeleidende speelgoed maakt.  Dit project werd afgerond als onderdeel van de Computing en ambachtelijke klasse bij Olin College of Engineering