Hur får man en Arduino micros() funktion med 0.5us precision (2 / 4 steg)
Steg 2: Öppna filen exempel i din Arduino IDE
Att få tillgång till min Timer2_Counter 0.5us-precision timing funktion, måste du först ringa "setup_T2();" för att ställa upp Atmega Timer2 prescalers och sådant. I mitt exempelkod kallade jag denna funktion inom funktionen Arduino setup().
Denna timer är 8 x mer exakta än vad den inbyggda Arduino micros() funktionen ger dig!
Du kan ringa "get_T2_micros();" för att få mikrosekund värdet av timern, ner till närmaste 0,5 mikrosekund värdet, eller ringa "get_T2_count();" för att få räkna värdet på den microcontroller Timer2. Sedan räkna värdet steg en räkna varje 0.5us, dividera detta värde med 2 ger dig mikrosekund värdet på timern.
Denna Timer2_Counter kod automatiskt tar hand om 8-bitars timern flödar över via ett avbrott, och kommer därför tillbaka räkna värden från 0 till 4,294,967,296, eftersom det returnerar antalet värden som datatypen för osignerade långa. Detta motsvarar mikrosekund värden av 0us till 2,147,483, 648us. Detta innebär att timern kan köra upp till 35.79 minuter innan överfyllda till 0. Om du vill kan manuellt återställa timern tillbaka till noll du anropa funktionen "reset_T2();".
Igen, för en fullständig beskrivning av koden, se min artikel här, liksom i dokumentationen inom fliken Timer2_Counter, som öppnas automatiskt i Arduino IDE när du öppnat filen "Timer2_Counter_Basic_Example.ino" bara en minut sedan.