AVR Assembler Tutorial 7 (11 / 12 stap)

Stap 11: Hoe we ontdoen van de knop? Versie 3


Er zijn talloze manieren die we kunnen overgaan. Eerst konden we hardware om zich te ontdoen van de knop toevoegen. We kunnen bijvoorbeeld proberen een transistor aanbrengend met het circuit op de uitvoerregel van de ToetsIndrukken (KeyPress), zodat het zou een klein straaltje van de stroom van de output nemen en een 5V puls naar de interrupt pin PD2 sturen.

Dat waarschijnlijk zou echter te lawaaierig op zijn minst en in het ergste geval dat het zou niet genoeg tijd om een nauwkeurige ToetsIndrukken (KeyPress) te lezen aangezien de uitvoer van de spanning van het toetsenblok niet zou tijd om stabilze hebben voordat de ADC lezen is gevangen toestaan.

Dus zouden we eerder komen met een softwareoplossing. Wat wij zouden willen doen is het toevoegen van een interrupt op de pin PD2 en schrijf een interrupt handler voor het waarin één lezing van de toetsenbord-pin. Met andere woorden, we ontdoen van de interrupt autotrigger van de ADC, en het toevoegen van een externe interrupt die de ADC erin roept. Op die manier het signaal om te lezen van de ADC komt na het signaal PD2 al heeft plaatsgevonden en dit dingen geven kan genoeg tijd om te stablize naar een nauwkeurige spanning voordat de PC0 pin gelezen en omgezet. Wij hadden nog een voltooiing van de ADC onderbreken die output het resultaat aan de weergave van de analysator aan het eind.

Zinvol? Goed laten we het doen...

Neem een kijkje op de nieuwe code gekoppeld.

Ziet u de volgende wijzigingen:

  1. Wij toegevoegd een rjmp adres .org 0x0002 om de INT0 externe interrupt
  2. We veranderd het EIMSK-register om aan te geven dat wij willen onderbreken op de INT0 pin
  3. Wij veranderde de ADATE in het ADCSRA register autotriggering uitschakelen pin
  4. We verlost van de ADCSRB-instellingen, omdat ze niet relevant wanneer ADATE uitgeschakeld is
  5. We moeten niet langer reset van de vlag van externe trigger, aangezien de INT0 interrupt routine dit automatisch gebeurt wanneer het is voltooid--eerder we niet een interrupt routine hebben, we gewoon geactiveerd de ADC off van een signaal op dat pin, dus we moesten met de hand die markering wissen.

Nu in de interrupt handler noemen we gewoon een conversie van de ADC.

Oefening 5: uitvoeren van deze versie en zien wat er gebeurt.

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