AVR Assembler Tutorial 6 (1 / 3 stap)

Stap 1: Hoe kunnen we twee microcontrollers om te praten met elkaar komen?


Aangezien wij beginnen om uit te breiden van ons project, zodat onze één eindproduct is opgebouwd uit een verzameling van kleinere delen die we gaan moeten meer spelden dan een enkele Atmega328P kan bieden. We willen dus elk stuk van het totale project op een aparte microcontroller doen en vervolgens hebben ze de gegevens tussen hen delen.

Dus het probleem dat wij moeten oplossen hoe we kunnen komen met een eenvoudige methode voor de controllers met elkaar praten en de overdracht van gegevens tussen hen is?

Nou, is een ding over deze controllers dat ze elke 16 miljoen instructies per seconde uitvoert. Dit is heel precies getimed en dus kunnen we deze timing gebruiken om de overdracht van gegevens. Als we milliseconde vertraging gebruiken voor het vormen van de gegevens moeten niet echt we alles wat om precies te zijn omdat de CPU is het uitvoeren van 16.000 instructies in een één milliseconde. Met andere woorden, is een milliseconde een eeuwigheid voor de CPU.

Dus laten we proberen het met de dobbelstenen rollen. Ik wil voor het verzenden van het resultaat van een dobbelsteen van de dobbelstenen roller chip naar de analyzer-chip. Stel dat u aan de overkant stonden en ik wilde signaal aan u het resultaat van mijn rol van een paar dobbelstenen. Een ding die ik doen kan, als we beide een horloge hadden, is dat mij zou zwenking voort een zaklamp, dan wanneer u bent klaar om te ontvangen van mijn gegevens u uw zaklamp inschakelen en we allebei onze klokken beginnen. Toen ik mijn zaklamp op voor het exacte aantal milliseconden als dobbel is het broodje te houden en vervolgens het uitgeschakeld. Dus als ik een 12 rolde zou ik mijn licht op houden voor 12 milliseconden.

Nu het probleem met het bovenstaande is dat voor jou en mij, er geen manier is zou men kunnen dingen nauwkeurig genoeg tijd om te onderscheiden tussen 5 milliseconden en 12 milliseconden. Maar hoe zit dit: Stel dat we besloten dat ik mijn licht op voor één jaar voor elk getal op de dobbelsteen houden zou? Dan als ik een 12 rollen ik het licht op je voor 12 jaar schijnen zou en ik denk dat je zal eens dat dat er geen mogelijkheid die u een fout maakt is zal bij het uitzoeken van het juiste nummer? U kon een pauze nemen en gaan spelen honkbal, kon je zelfs gaan spelen craps in Vegas voor 6 maanden, zo lang als op enig moment tijdens het jaar keek overkant van de straat te zien dat als het licht was op u een telling niet zou missen. Nou is dat precies wat we doen voor de microcontrollers! Een enkele milliseconden voor de CPU is net als een jaar. Dus als ik het signaal voor 12 milliseconden inschakel is er bijna geen kans dat de andere microcontroller zal het verwarren voor 10 of 11 ongeacht welke interrupts en whatnot in de tussentijd gebeuren. Voor de microcontrollers is een milliseconde een eeuwigheid.

Dus is hier wat we gaan doen. Eerst zullen we twee poorten op de controller als onze communicatiepoorten kiezen. Ik zal gebruik maken van PD6 voor ontvangen gegevens (we zouden kunnen noemen Rx als wij) en ik zal PD7 kiezen voor het overbrengen van gegevens (we kunnen noemen het Tx als wij). De spaander van de analysator zal periodiek controleren is Rx pin en ziet als een signaal zal dalen tot een "mededeling subroutine" en vervolgens een retour signaal doorgeeft naar de rol van de dobbelstenen zeggen dat het is klaar om te ontvangen. Zij zullen beide beginnen timing en de rol van de dobbelstenen zullen een signaal (d.w.z. 5V) doorgeeft voor een milliseconde per getal op de dobbelsteen. Dus als de worp dubbele Zessen, of een 12 was, vervolgens de dobbelstenen rol zou het PD7 wil 5V voor 12 milliseconden en vervolgens troep op weerom voor 0V. De analyzer zal controleren de PD6 pin elke milliseconde, tellen elke keer, en wanneer het gaat terug naar 0V vervolgens het uitgangen het resulterende getal naar de analyzer weergeven, waaruit een twaalf in binaire op de LED's.

Dus is dat het plan. Laten we eens kijken als we het kunnen toepassen.

Gerelateerde Artikelen

AVR Assembler Tutorial 2

AVR Assembler Tutorial 2

Deze tutorial is een voortzetting van het "AVR Assembler Tutorial 1"Als je niet hebt doorlopen Tutorial 1 moet je nu stoppen en dat men eerst doen.In deze tutorial zullen we onze studie van assembly language programmering van de atmega328p in de
AVR Assembler Tutorial 11

AVR Assembler Tutorial 11

Welkom bij Tutorial 11!In deze korte tutorial, zijn we eindelijk het eerste deel van onze laatste project bouwen.Het eerste wat dat u moet doen is gaat u naar de allerlaatste stap van deze tutorial en Bekijk de video. Dan kom hier terug. [onderbreken
AVR Assembler Tutorial 1

AVR Assembler Tutorial 1

Ik heb besloten om een serie tutorials over hoe te schrijven van assembler programma's voor de Atmega328p die het gebruikt in de Arduino microcontroller is schrijven. Als mensen geïnteresseerd blijven blijft ik stak een een week of zo totdat ik oprak
AVR Assembler Tutorial 8

AVR Assembler Tutorial 8

Welkom bij Tutorial 8!In deze korte tutorial gaan we een beetje een afleiding van de invoering van nieuwe aspecten van assembly language programmering te laten zien hoe onze prototyping componenten verplaatsen naar een aparte "gedrukt" printplaa
AVR Assembler Tutorial 9

AVR Assembler Tutorial 9

Welkom bij Tutorial 9.Vandaag zullen wij tonen hoe de controle van zowel een 7-segment display en een 4-cijferige weergave met behulp van onze ATmega328P en AVR assembler code. In de loop doen die we nemen van omleidingen moeten zal op how to use van
AVR Assembler Tutorial 7

AVR Assembler Tutorial 7

Welkom bij Tutorial 7!Vandaag gaan we naar eerste show hoe opruimen van een toetsenbord, en vervolgens laten zien hoe de analoge input poorten gebruiken om te communiceren met het toetsenblok.We zullen dit doen met behulp van interrupts en een enkele
AVR Assembler Tutorial 10

AVR Assembler Tutorial 10

Welkom bij Tutorial 10!Sorry dat het zo lang duurde om deze volgende aflevering eruit maar dit is een behoorlijk hectische tijd van het jaar. In ieder geval, is hier het!We hebben een lange weg afgelegd en u bent waarschijnlijk al bekwaam genoeg is o
AVR Assembler Tutorial 5

AVR Assembler Tutorial 5

Vandaag gaan we nemen een kijkje op de verschillende geheugenlocaties in de Atmega328p microcontroller en zien als we beter begrijpen kunnen hoe de dingen worden opgeslagen, waar ze worden opgeslagen en hoe de pointers en opzoektabellen werken.De tut
AVR Assembler Tutorial 4

AVR Assembler Tutorial 4

Welkom bij de handleiding voor nummer 4!In deze tutorial zullen we bouwen een circuit om te simuleren het rollen van twee dobbelstenen. Dan zullen we eerst een brute-force-programma welk doet naar de job schrijven. Dan zullen we dat programma op vers
AVR Assembler Tutorial 3

AVR Assembler Tutorial 3

Welkom op tutorial nummer 3!Voordat we beginnen wil ik een filosofische opmerking maken. Wees niet bang om te experimenteren met de circuits en de code die we proberen op te in deze tutorials bouwen. Draden rond wijzigen, nieuwe onderdelen toe te voe
Een geavanceerde benadering van programmering van Arduino & AVR

Een geavanceerde benadering van programmering van Arduino & AVR

Dit instructable is een must read voor iedereen die vertrouwd is met core AVR chips en Arduino.Nou, om meer specifieke, bij het lezen van de instructable, zal u zitten kundig voor:1) weten het juiste verschil tussen AVR en Arduino.2) programmering Ar
Programmeerbare LED

Programmeerbare LED

geïnspireerd door diverse LED Throwies, knipperende LEDs en soortgelijke instructables ik wilde doen van mijn versie van een LED aangestuurd door een microcontroller.Het idee is om de LED knipperende reeks Herprogrammeerbare. Deze herprogrammering ka
De generator van willekeurige golfvorm, voor ~ 20$

De generator van willekeurige golfvorm, voor ~ 20$

een willekeurige golfvorm generator (AWG) is een nuttige maar vaak duur stuk van testapparatuur (ebay voor lacht). Gebruiken om te bepalen component frequentiebereik, genereren van vervoerder signalen, als een LCR-meter als u een bereik, tune resonan
Star Trek deurbel Hack

Star Trek deurbel Hack

Ik heb altijd al een fan van de Star Treks en als zodanig ik was erg opgewonden toen mijn kamergenoot bracht het huis van een originele serie stijl Star Trek comm panel. Ik had nog nooit gezien een van deze, maar een snelle zoektocht nam ons mee naar