AVR Assembler Tutorial 7 (12 / 12 stap)

Stap 12: Code en Video voor de werkende versie

Zoals we door de laatste versie zagen, werkt de interrupt knop niet goed omdat de interrupt wordt geactiveerd op een stijgende rand aan pin PD2 en de interrupt handler vervolgens de ADC-conversie roept. Echter krijgt de ADC dan de spanning lezen voordat het gestabiliseerd en dus het leest onzin.

Wat we nodig hebben is het introduceren van een vertraging tussen de interrupt op PD2 en de ADC lezen op PC0. We zullen dit doen door toevoeging van een timer/teller, een teller overflow interrupt en een vertraging-routine. Gelukkig weten we al hoe dit te doen van Tutorial 3! Dus zullen we Kopieer en plak de relevante code vanaf daar.

Ik heb de resulterende code en een video toont het in bewerking gegeven.

U zult merken dat de lezingen niet zo nauwkeurig zijn als men zou hopen. Dit is waarschijnlijk vanwege een aantal bronnen:

  1. We zijn te tikken van de output van de spanning van het toetsenblok om te activeren op PD2 die gevolgen heeft voor de lezing in PC0.
  2. We weten niet echt hoe lang uit te stellen na de trigger om de beste lezing.
  3. het duurt een paar cycli voor de ADC-conversie te voltooien wat betekent dat we niet snelle brand op het toetsenbord kunnen.
  4. Er is waarschijnlijk ruis in het toetsenbord zelf.
  5. enz...

Dus, hoewel we erin geslaagd om het toetsenblok te werken, en we het nu in toepassingen gebruiken kunnen met behulp van de waarden van de druk op de toets op een andere manier in plaats van hen gewoon uitvoeren naar het display analyzer, het is niet erg nauwkeurig en het is erg vervelend. Dat is de reden waarom ik denk dat de beste manier om de draad van toetsenborden is gewoon te houden van elke uitgang via het toetsenbord op een andere poort en beslissen welke toets is ingedrukt door welke poorten Zie een spanning. Dat is eenvoudig, zeer snel en zeer nauwkeurig.

In feite, zijn er slechts twee redenen waarom men zou willen rijden een toetsenbord de manier waarop die wij hier hebben gedaan:

  1. Het gebruikt slechts 2 van de pinnen op onze microcontroller in plaats van 8.
  2. Het is een groot project te tonen van de verschillende aspecten van het ADC op de microcontroller die van de standaard dingen die u vindt daar zoals temperatuur lezingen afwijkt, draaien potentiometers, enz. Ik wilde een voorbeeld van geactiveerde enkele lezingen en externe pin auto-triggering in plaats van gewoon gratis CPU-opslokkende Loopmodus.

Anyway, hier is een laatste paar oefeningen voor je:

Oefening 6: herschrijven de ADC-conversie voltooid interrupt handler als een Look-up tabel wilt gebruiken. Dat wil zeggen zodat het de analoge waarde met het eerste item in de tabel gecontroleerd en als het is groter als uit de interrupt, resultaat als het niet dan het weer stappen Z naar het volgende item in de tabel en de takken op de proef. Dit zal verkorten de code en de interrupt routine opruimen en het ziet er mooier maken. (Ik zal een mogelijke oplossing als de volgende stap)

Oefening 7: haak het toetsenblok naar 8 pinnen op de microcontroller
en schrijf de eenvoudige driver voor it en ervaring hoeveel mooier het is. Kun je denken aan een paar manieren om het werk van onze methode beter te maken?

Dat is alles voor deze tutorial. Ik heb de definitieve versie met pointers bijgevoegd. Als we onze weg dichter bij ons uiteindelijke doel, zullen we gebruiken het toetsenbord nogmaals in Tutorial 9 om te laten zien hoe om te controleren van zeven segment verschijnt met het (en het opbouwen van iets interessant dat toepassingen de extra toetsen op het toetsenbord van de telefoon) we zullen overgaan tot dingen met knooppersen in plaats daarvan controleren (aangezien die methode beter bij het eindproduct dat we past richting met deze tutorials bouwen) en we zullen gewoon het toetsenblok ijskast.

Zie je volgende keer!

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 6

AVR Assembler Tutorial 6

Welkom bij Tutorial 6!Today's tutorial zullen kort waar zullen we het ontwikkelen van een eenvoudige methode om gegevens tussen een atmega328p en een andere met twee poorten verbinden hen te delen. Wij zullen vervolgens nemen de dobbelstenen rol van
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 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