Hoe krijg ik een Arduino micros() functie met 0.5us precisie


Ik hou van Arduino microcontroller programmeren, en ik gebruik het regelmatig in ruimtevaartonderzoek, evenals in home projects home projecten. Als ik werk op mijn vele home projects home projecten, echter vind vaak ik mezelf een zeer nauwkeurige timer nodig. Dit komt omdat mijn focus home projects home projecten rond Radio Control (RC) vliegtuigen en RC hobby mededeling signalen op basis van timing signalen. Deze mededeling van de RC-signalen heten PWM (Pulse Width Modulation) en PPM (Pulse positie Modulation). De signalen, de uitwijking van een volledige stick in één richting, op een handheld-zender, meestal correspondeert met ~ 1000us (microseconden), en correspondeert met een volledige stick doorbuiging in de tegenovergestelde richting ~ 2000us.

Voor het meten van de timing in deze signalen, ik voor het eerst gebruikt de Arduino micros() functie, in combinatie met externe interrupts. De ingebouwde Arduino micros() functie is goed, maar niet goed genoeg voor mijn behoeften. Het heeft een nauwkeurigheid van 4us (Zie hier). Dit betekent dat als ik lees een PWM-signaal dat ik weet precies 1500us (centrum-stick positie op een hand-held zender), I 'd see lezingen van 1496, 1504, 1500, en soms zelfs 1492 of 1508us. Dit is teveel afwijking.

So... Ik keek en ik keek en ik zocht naar een oplossing. De enige oplossing die ik kon vinden gebruikt de Atmega328 microcontroller van Timer1, wat onaanvaardbaar is voor mijn behoeften, want dan verlies ik gebruik van de Arduino servo bibliotheek. Daarom besloten heb ik om te doen een ton van lezing en naar beneden in de ingewanden van de microcontroller, rechtstreeks toegang krijgen tot de Atmel's timers en het schrijven van mijn eigen timer-functie.

Vanuit dit streven is geboren mijn Timer2_Counter "bibliotheek", waarin functies die kunnen worden gebruikt in plaats van de micros()-functie en die bieden een nauwkeurigheid van 0.5us, die 8 x beter dan de micros()-functie is!

Voor meer gedetailleerde informatie over mijn code, evenals de nieuwste versie van mijn code, met inbegrip van een volledige lijst van de functies, gelieve te verwijzen naar mijn artikel hier:
Arduino micros() functie met 0.5us precisie - met behulp van mijn Timer2_Counter "Bibliotheek".

Gerelateerde Artikelen

Hoe maak je een Arduino sound synthesizer met MIDI-interface

Hoe maak je een Arduino sound synthesizer met MIDI-interface

Met deze synthesizer kun je Arduino reproduceren van volledig aangepaste golfvormen. Als gevolg van de MIDI-interface, kan het worden aangesloten op alle instrumenten die dergelijke functie en spelen met het gewenste geluid.Stap 1: materialen(In dit
Hoe krijg ik een kat te zitten met je

Hoe krijg ik een kat te zitten met je

Stap 1: deken Lay-out een zachte deken.Stap 2: wachtenStap 3: zitten Na uw kat zitten gewoon zitten met uw kat gaat.
Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Ik heb een Saitek X52-Pro HOTAS setup die ik gebruik voor Elite: gevaarlijk. Het is een fantastische joystick maar het kon doen met slechts een paar meer knoppen. Met een Arduino Micro kunt u uitbreiden deze (of enige andere) joystick voor elk spel d
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
Hoe tweet van een Arduino met behulp van de wifi-Shield

Hoe tweet van een Arduino met behulp van de wifi-Shield

he, ik ben een grote fan van Instructables. Ik heb het consequent gebruikt voor de afgelopen 3 jaar en nu is het tijd voor mij om te schrijven een zelf.Hier gaan we. Dit instructable is voor degenen die willen een levenloos voorwerp tweet automatisch
Hoe krijg ik een gratis jacht

Hoe krijg ik een gratis jacht

Sound niet onmogelijk? Het is niet.Het duurde niet lang zult u worden weggeven hen zelf.Hier is de inhoudsopgave van de hele saga:Hoofdstuk 1: Hoe krijg ik een gratis jachtHoofdstuk 2: De eerste reis van de vrije jachtHoofdstuk 3: Fix Broken Stix en
Hoe maak je een Arduino compatibele Bluetooth 4.0-Module

Hoe maak je een Arduino compatibele Bluetooth 4.0-Module

UPDATE: Laat maken Robots, mijn huis digitale hackerspace, werd gekocht door RobotShop. Ik wil niet ingaan, maar de nieuwe eigenaren verboden mezelf en de meeste van de ervaren leden. Dat gezegd, allermeest naar de verbinding er gebroken zal worden.
Hoe krijg ik een bibliotheekpas in Boston

Hoe krijg ik een bibliotheekpas in Boston

bibliotheken zijn geweldig. U bent vergeten dit ergens in uw onderwijs, wanneer een afmattend nighter vervangen alle goede herinneringen die u hebt gehad van storytime in voorschoolse. Ik verzoek u nogmaals na te denken. Er zijn boeken, films, tijdsc
Hoe maak je een Arduino Ledlamp nachtkastje

Hoe maak je een Arduino Ledlamp nachtkastje

Hoe maak je een LED Lamp nachtkastje met een elektronische lader.Stap 1: Stap 1: verzamelen van materialenDe eerste stap op hoe maak je een LED lamp nachtkastje is het verzamelen van al uw materialen.U moet:1 ArduinoWat Jumper draadjes1 RGB-LED3 330
Hoe krijg ik een Rack HUUUGE

Hoe krijg ik een Rack HUUUGE

In dit Instructable zal ik u tonen hoe krijg ik een enorme rek-actie. Stap 1: krijg je geest uit de goot.De enorme rek is een relatief kleine rek dat kan worden gebruikt voor het houden van een xBox of PS3-controller, terwijl u zijn het nemen van een
Hoe maak je een Glittery metalen Lamp met behulp van papier

Hoe maak je een Glittery metalen Lamp met behulp van papier

Allright!! Allright!! Voordat u denkt dat de titel van dit instructable misleidend is, Lees verder. :)"Ideeën niet blijven in één hoofd lang" - TarunIk doorbladerde behance.net en vond dit geweldig designer's portefeuille met de naam Romy Kuhne.
Hoe maak je een boog uit PVC met geen PowerTools

Hoe maak je een boog uit PVC met geen PowerTools

Hoe maak je een boog uit PVC met geen PowerTools? Nou laat me u tonen.Stap 1: materialenU moet:-PVC pijp-Sommige paracord-A zagOptioneel:-een tandenborstel-een reflex stip zicht (opzoeken hoe te maken)Stap 2: Het maken van het lichaam van de boogDe P
Hoe maak je een Doll House Bed met beddengoed Origami (Paper craft) - TCGames [HD]!

Hoe maak je een Doll House Bed met beddengoed Origami (Paper craft) - TCGames [HD]!

Hoe maak je een Origami DollHouse Bed met beddengoed!Ontworpen door: traditioneleDit model kan lijm nodig als u van plan op het gooien, zoals de modulaire stukken niet samen voor lang blijven. Het is echter een uitstekende gooien sterren en werkt ech
Hoe maak je een origami Halloween graf met een kruis decoratie!

Hoe maak je een origami Halloween graf met een kruis decoratie!

In deze tutorial, ik zal u tonen hoe maak je een origami Halloween graf met een Cross. Geniet van: D!Origami: Halloween graf met een kruis!Ontworpen door: Fumiaki ShinguInstructies gevonden op http://en.origami-club.com/Tips: zorg voor uw plooien aan