6.25 nanosekund resolution timer för alla mikrokontroller!



När du utformar en solid state-ersättning för ett vakuum-rör-och-CRT radar display delsystem, var jag fast på att få ett lämpligt system då perioden mellan synch pulsen och echo pulsen. Synch puls och echo puls var att fångas på två stift över en Arduino förfallna. Arduino förfallodatum har en MCLK/2 klockan på 42 MHz, som skulle ge mig en upplösning på 23.81 nanosekunder (ns) som för ljushastigheten, skulle översätta till 6.86 meter. Jag ville ha en bättre upplösning.

Efter att ha tittat in i lösningar med hög hastighet oscillatorer och diskret logik ICs (räknare, SKIFT register), FPGAs och off hyllan lösningar kostar i spänna av USD 2,000 /-, bestämde jag mig att undersöka ESP8266 för någon lösning på min timing problem.

Till min glädje upptäckte jag två funktioner i Arduino ESP8266 API, nämligen ESP.getCycleCount() och ESP.reset()

ESP.getCycleCount() räknar instruktion cyklar sedan start, i en inre osignerat 32-bitars variabel, riskerar att svämma över varje 28 sekunder eller så. En en mikrosekund ger period 160 instruktion cykler. Nu för att mäta den programvara overhead som krävs av din programvara, behöver du bara räkna instruktion cyklar din rutin räknas för en 1 mikrosekund fördröja och subtrahera 160 från att räkna, att ge dig programvaran overhead i förvärva räkningen. För 1 mikrosekund dröjsmål fick jag en räkning av 213. Som fungerat till 213-160 = 53 räknas (53 x 6,25 = 331.25 nanosekunder) programvara overhead att förvärva räkningen. Subtrahera 53 från varje räknas ger mig en noggrannhet av några tiotals picoseconds, räkna för perioden från 30 mikrosekunder till cirka 500 mikrosekunder.

Se Steg
Relaterade Ämnen

Raspberry Pi och Arduino: bygga tillförlitliga system med WatchDog timer

Sammanfattning: I detta Instructable titta vi på hur man bygger mer tillförlitliga datorsystem med WatchDog timer. Vi visar hur du ställer in och använder Raspberry Pi och Arduino inre watchdog timer. Vi förklarar också varför en extern WatchDog Time...

Hur du ställer in Google Online Timer

Denna slideshare presentation kommer att ge en idé hur man ställer in Google online timer. Du kan få detta i Googles startsida google.com. Skriv bara "Google timer 50 sekunder" eller helst i stället för 50 i sökrutan och timern startar automatis...

Timer avbryter på DP32

Timers! Jag är glada att äntligen att täcka timers på min favorit ombord, DP32!Kom ihåg vägen tillbaka när jag skrev om externa avbrott? Om inte du är bekant med avbrott och hur de fungerar, rekommenderar jag att kontrollera denna tutorial ut först....

Början Microcontrollers del 11: Timers, räknare och mikrokontroller klockan

Timers och räknare är så integrerad att du kommer att se många exempel på dem i hela denna serie. Som namnet säger, används timers för tid och räkna. Inventering och timing kan du göra några mycket fina saker som kontrollerande LED brights, vinkel gr...

Skapa anpassade min lilla ponny leksaker!

Du vet att det finns en ton av ponnyer från vänskap är MagicVisa att du skulle älska att ha i leksak som!Tja, åtminstone i listan är lång för oss...börjar med vågad Do... och går in i sfären av våra egna anpassade ponnyer!Här är ett fantastiskt sätt...

Spela på PS4 med din PS360 + Arcade Stick/kampen Stick mod

Denna ska tutorial går över uppgradera firmware på din PS360 + styrelse så att du kan spela kompatibel PS4 spel utan 8 minuters tiden ut och ändå kunna spela icke kompatibla spel (bibehålla den tid ut).Se FAQ på slutet för mer information om PS360 +,...

IoT Jar ljuskrona, fysiska Gmail Twitter Facebook & väder anmälaren

Detta är min andra instruera om ljuskrona, som jag mycket favorit och ville göra det mer perfekt.Jag är en heltid arbetar med datorer, men jag har inte mycket tid att kolla nya meddelanden från sociala nätverk som Facebook eller Twitter och Gmail ock...

Programmera en Atari spel

Detta är ett enkelt sätt att göra ett snabbt och roligt spel i Visual StudiosSteg 1: Skapa 1. gränssnitt Till att börja detta behöver du programmet Microsoft Visual Basic. Om du inte har det, är det en gratis nedladdning från Microsofts webbplats.Hur...

DIY Laser Tag System (Microcontroller verison)

här är det efterlängtade laser tag systemet med mikrokontroller setup! Om du har har en mikrokontroller med flera ingångar, då detta kommer att berätta hur man använder det att skapa och programmera en laser tag system av din egen med en stor anpassn...

Osedda inbrottslarm.

jag kan tänka mig om du har sett en James Bond film, bläddrat tech kategorier här på Instructables, eller såg en MacGyver avsnittet du sett lasrar som används som stöld larmanordningar. Naturligtvis om du sett någon TV-program har du sett människor (...

Arcade-knappen MIDI-Controller

att ha en hårdvara gränssnitt till din favorit musik / DJ / VJ programvara kan verkligen öppna upp dörrar i din kreativitet. Mest utbredda form av hårdvara kontroll till datorn för sådana program är en MIDI controller.En MIDI-controller kan skicka oc...

Sakernas Internet WiFi DIY rörelsedetektor med e-postavisering med PIR-sensor och ESP8266

I detta projekt använder jag ESP8266 WiFi modul och Rörelsedetektor PIR sensor för att få e-postaviseringar om någon kommer in i rummet medan jag är borta. Jag använder GadgetKeeper moln plattform att bing e-postmeddelanden med PIR-Sensor. Jag har vä...

Enkel och lätt tidsinställd bevattning system

hålla min frus blommor fint fuktig är en svår uppgift eftersom vi inte så mycket som vi vill i vårt hem på intervallet.När vi kommer hem för helgen, är veranda växterna oftast torkade och döda.Men allt är nog att behaga min älskling, och jag kom upp...

Hur till protokollföra och förbättra Ocarina musik

med huzzahs till Nintendo för Legend of Zelda: Ocarina of Time, inser vi alla fortfarande den vackra elegansen av ocarina musik. Om du bara så råkar vara ett stort fan av Legend of Zelda-serien, som jag är, då du förmodligen äger eller vill äga en le...

Göra en lera Ocarina

ända sedan "Legend of Zelda: Ocarina of Time" kom ut, alla associerar ocarinas med Zelda och det därför, alla intresserade ocarinas anses en die-hard Zelda fanatiker! Det finns mycket mer att Ocarinas än Zelda du vet. Med detta Instructable, kan...

Stora LEGO MineCraft Creeper Bot

Vi kommer att bygga en två fot hög robotic Minecraft Creeper drivs av en LEGO Mindstorms EV3! Om du inte har en EV3 kit kan du fortfarande bygga ranka! Detta skapades ursprungligen för Hjärnan apor i Ann Arbor.Detta är en stor tillbringar veckoslutet...

TI MSP430G2 jul ljus Thingie

som alltid är fallet, semestern smög upp på mig. Jag har inte tillräckligt med tid kvar att reda ut tänder - mycket mindre sätta dem upp. Men med familj släppa av haffa deras swag, jag var tvungen att räkna ut några medel så att det visas att jag är...

Generiska Switch kapare

denna artikel beskriver hur man bygger en solid state-mikrokontroller enhet som styr fysiska växlar. Det är så billigt att göra (4$ eller så), förutsatt att du har en mikrokontroller programmerare. Kretsen själv är av trivial komplexitet.Detta projek...

Friska lin & ägg våffla frukost

Här är problemet med våfflor: först, de är lite för mycket arbete att göra dagligen; och för det andra, de är inte särskilt hälsosamt. Med detta instructable jag försöka lösa båda dessa hinder och ger dig ett sätt att njuta av våfflor dagligen som är...