Het interpreteren van de draairichting van een digitale draaischakelaar met een PIC (4 / 5 stap)

Stap 4: Theorie van de Software van de operatie


De routine die de draairichting leest is interrupt aangedreven. De microcontroller dat u moeten zitten kundig voor onderbreken telkens er een verandering op een van de (ten minste) twee pinnen is als de interrupt is ingeschakeld. Dit heet de PORTB verandering interrupt op de PIC16F877A. Wanneer de schakelaar is gedraaid, zal de microcontroller worden onderbroken en de uitvoering van het programma zal worden verzonden naar de Interrupt Service Routine (ISR). De ISR zal snel erachter te komen welke kant de schakeloptie was gedraaid, een markering op de juiste manier instellen en snel terug te keren naar het hoofdprogramma. We moeten dit snel gebeuren in het geval dat de gebruiker draait de overstap zeer snel.

We weten dat de grijze gecodeerde AB patroon herhaalt elke vier posities, dus als we het routinewerk voor overgangen tussen deze vier posities maken het voor alle anderen werken zal. Merk op dat in een positie vier cyclus, er zijn vier randen. Een stijgende rand en een dalende rand voor zowel de invoer van de A als de B-ingang. De microprocessor onderbroken zal worden elke keer dat er een rand, wat betekent wordt dat de microcontroller telkens als die de knop actief is zal onderbroken worden. Dientengevolge, moet de ISR erachter op welke manier de knop werd gedraaid. Om ons te helpen erachter te komen hoe dit te doen, wij wenden tot de golfvorm voor rechtsom draaien.

Merk op dat een tijd-A heeft een rand, de nieuwe waarde is altijd anders dan die van B. Wanneer de knop gaat vanaf positie 1 tot 2, een overgangen van logic-0 aan logica-1. B is nog steeds 0 voor deze overgang en komt niet overeen met de nieuwe waarde van A. Wanneer de knop vanaf positie 3 tot en met 4 gaat, heeft A een dalende rand terwijl B logica-1 blijft. Merk opnieuw, dat B en de nieuwe waarde van A verschillend zijn. Recht nu, kunnen we zien dat elk moment die a de interrupt tijdens rechtsom draaien veroorzaakt, de nieuwe waarde van die van B. verschilt Laten we eens kijken B om te zien wat er gebeurt. B heeft een stijgende rand wanneer de switch van positie 2 tot en met 3 overgangen. Hier de nieuwe waarde van B is hetzelfde als A. Looking aan de laatste resterende rand voor rechtsom draaien, B heeft een dalende rand verplaatsen van positie 4 tot en met 5. (Positie 5 is hetzelfde als positie 1.) De nieuwe waarde van B is hetzelfde als een hier ook! Nu kunnen we sommige aftrek! Als A de interrupt veroorzaakt en de nieuwe waarde van A anders dan die van B is, was de rotatie met de klok mee. Bovendien, als B de interrupt veroorzaakt en de nieuwe waarde van B hetzelfde als A is, was dan de rotatie met de klok mee.

Laten we eens nagaan snel het geval tegen de roulatie. Net als rechtsom draaien, tegen de roulatie vier interrupts in één cyclus zal veroorzaken: twee voor input A en twee voor input B. Input A heeft een stijgende rand wanneer de knop beweegt vanuit positie 4 tot en met 3 en een dalende rand verplaatsen van positie 2 naar 1. Als u de knop verplaatst vanaf positie 4 tot en met 3, is de nieuwe waarde van A hetzelfde als de waarde van B. aankondiging of wanneer een bewegingen van positie 2 naar 1 de nieuwe waarde hetzelfde als die van B zo goed is. Nu, kunnen we die zien wanneer A veroorzaakt de interrupt en haar nieuwe waarde overeenkomt met die van de rotatie B was tegen de klok in. Snel, zullen we kijken naar de input B om te controleren of alles. B zal leiden tot een interrupt wanneer de knop vanaf positie 5 beweegt (die is hetzelfde als 1) 4 en wanneer de knop wordt 3 tot 2 positie verplaatst. In beide gevallen, de nieuwe waarde van B komt niet overeen met de bestaande waarde van een die is het tegenovergestelde van de gevallen wanneer B de interrupt voor rechtsom draaien veroorzaakt. Dit is goed nieuws. Alles uitgecheckt zoals het hoort.

Om samen te vatten, als een oorzaken de interrupt en de nieuwe waarde niet overeenkomt met de waarde van B of B veroorzaakt de interrupt als de nieuwe waarde van B overeenkomt met de waarde van A wij weten was er rechtsom draaien. Kunnen we de andere gevallen voor een tegen de rotatie in software controleren of we kunnen aannemen dat omdat het niet rechtsom draaien was er tegen de klok in. Mijn routine maakte gewoon de veronderstelling.

Gerelateerde Artikelen

Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Inleiding: van elektronisch speelgoed & games magnetrons, microcontrollers bevinden zich zowat overal deze dagen! Maar hoe kunnen we deze kleine computers werken voor onze eigen elektronica projecten maken? Dat is waar deze tutorial komt - met gedeta
Digitale schilderij Les 1: De grondbeginselen van het gebruik van een grafisch tablet gebruikt

Digitale schilderij Les 1: De grondbeginselen van het gebruik van een grafisch tablet gebruikt

Computers hebben verandering gebracht naar iedere hoek van de moderne samenleving. Een van deze hoeken is kunst. Het internet staat vol van concept kunst, achtergronden en vele andere soorten afbeelding die zijn opgesteld door één of andere gebruiker
Het gebruik van uw digitale camera (canon alleen) als een gewone pc-webcam

Het gebruik van uw digitale camera (canon alleen) als een gewone pc-webcam

het onmogelijke is nu mogelijk nu met uw canon digicam. Het kan worden gebruikt voor chatten en video conferencing. De onderstaande CANON modellen zijn "enige" modellen die de functie ondersteunen:Digital IXUS 400Digital IXUS IIDigitale IXUS vDi
Laten we het maken van een game controller!

Laten we het maken van een game controller!

Ik hou van vliegende spelen, maar het voelt alsof er nooit genoeg knoppen op mijn joystick.Dit instructable zal u tonen hoe te bouwen uw eigen panel schakelaar in geen tijd.Het zal werken met een spel en de computer die ondersteuning biedt voor een j
Het maken van een lepel Brass Knuckles door 123D vangst, MeshMixer & MakerBot.

Het maken van een lepel Brass Knuckles door 123D vangst, MeshMixer & MakerBot.

Deze tutorial illustreert hoe maak je een Brass Knuckles lepel enkel voor het geval dat een gewelddadige voedsel gevecht breekt los op uw volgende diner.Ik gebruikte:-Autodesk 123D vangen voor het scannen van de afbeelding in CAD-Autodesk MeshMixer m
Het installeren van een TV-antenne of antennekabel

Het installeren van een TV-antenne of antennekabel

Versión en españolVoordat u uw antenne koopt en uw hard verdiende geld besteden moet u overwegen een paar dingen. U moet vinden het type antenne dat u nodig hebt, de locatie van uw antenne, uw budget, uw vaardigheidsniveau en de rentabiliteit van he
Hoe het bouwen van een 24 Volt elektrische motorfiets

Hoe het bouwen van een 24 Volt elektrische motorfiets

Ik heb een paar elektrische voertuigen (EV) bouwt voor motorfietsen op Instructables gezien en ze waren allemaal zeer behulpzaam. Ik hoop toe te voegen aan diegenen die vooruit gegaan en gebouwd, gedeeld en hebben mij gemotiveerd om te bouwen. Dit is
Beginner's Guide to 3D printen met de Objet Connex 500: hoe het bouwen van een Tank raket draagraket (en reinigen van de puinhoop die u hebt gemaakt in het proces)

Beginner's Guide to 3D printen met de Objet Connex 500: hoe het bouwen van een Tank raket draagraket (en reinigen van de puinhoop die u hebt gemaakt in het proces)

de Objet Connex 500 3D Printer... een geheimzinnige, magie en verbazingwekkende Hi-Tech meesterwerk, staat van 3D-printen van hoog gedetailleerde prototypes. Weten over het werken met dit prachtige apparaat is een geheim alleen worden bekend door een
Het gebruik van een audio-mixer (zangbodem)

Het gebruik van een audio-mixer (zangbodem)

In dit instructable I 'm gonna doorlopen alle controle functies op de meeste mixers (mengpanelen, mengen van bureaus, audio consoles klankborden - ze allemaal verwijzen naar hetzelfde). Ik zal beginnen met de absolute grondbeginselen:Wat is een mixer
Hoe het bouwen van een paleis van de geheugen - SuperStruct Instructables serie

Hoe het bouwen van een paleis van de geheugen - SuperStruct Instructables serie

Hallo, en Welkom bij dit Instructable. Op de volgende bladzijden nemen we een kijkje op de basics van het gebruik van een tak van de "coördinatiemethode '' loci''" informatie op te slaan in het geheugen zo efficiënt mogelijk voor korte en/of lan
Hoe het bouwen van een Robot - The BeetleBot v2 (Revisited)

Hoe het bouwen van een Robot - The BeetleBot v2 (Revisited)

dit is de kever robot instructables revisited a la MythBusters stijl!Oorspronkelijk maakte ik een instructables over mijn kever robot versie 1.Het is nu tijd om u te tonen een nieuwe versie van deze prachtige robot. Deze nieuwe versie is veel gemakke
Het gebruik van een natte tegel zag to cut glazen flessen

Het gebruik van een natte tegel zag to cut glazen flessen

Gelieve gratie de minder dan stellaire foto's in dit Instructable.Het is jaren geleden toen ik had niets maar een goedkoop gemaaktdigitale camera. Ik hoop dat het snel bijwerken met veel betere beelden.Na de aankoop van vele gadgets en widgets te sni
Tutorial over het maken van een zwart Locust boog

Tutorial over het maken van een zwart Locust boog

allereerst ik wil excuses voor eventuele grammaticafouten, en eventuele andere fouten schriftelijk caus ik gebruikte google vertalen voor het vertalen van alle tekst die u hier ziet (Engl is niet mijn eigen languge dus schreef ik allemaal in mijn lan
Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

als je hebt gespeeld met microcontrollers en elektronica dan u waarschijnlijk gezien hebt LED dot matrix displays en andere projecten die daar gebruik van shift registers zoals 7-segment displays en meer. Dit instructable gaat over een snelle intro a