Timer avbryter på DP32 (13 / 15 steg)
Steg 13: Anpassa din egen kod
Ladda ner skissen har jag inkluderat i det här steget.
Upp på toppen ett avsnitt med rubriken "Definieras Användarvariabler". Detta avsnitt innehåller allt du behöver att ändra för din timer, så du inte behöver oroa dig att hitta det i koden.
Prescale värde
Här sätta vi våra prescale värde. Det bör vara inställd på 1:2 värdet redan, men om du vill ha en 1:4 eller 1:32, bara ändras. Detta sätt, du kan ställa in önskad prescaler och behöver inte komma ihåg vilken kod ger vilken prescaler.
Klockfrekvens
Processorns klockfrekvens här hänvisar till frekvensen av PB klockan. På DP32 ligger det 40 MHz. På uC32 och WF32, ska det vara 80 MHz, så ange det enligt vilka styrelsen du använder.
Avbryta frekvens
Detta är målet frekvensen för våra avbrott. Det bör sättas till 400 Hz när du hämta koden, men du kan ändra detta till vilken frekvens du vill ha din timer körs i... nästan.
I sanning, eftersom det Timer registret är endast så stor, har gränser för hur länge det kan fördröja avbrottet. Det betyder, att snabbare klockor (högre prescale värden) kommer inte att kunna uppnå de lägre frekvenserna, och långsammare klockor kommer inte att kunna uppnå högre frekvenser. Här är en tabell över vilka frekvenser varje prescale värde kan åstadkomma på DP32 *:
Prescaler Max frekvens Min frekvens
1:1 40 MHz 611 Hz
1:2 20 MHz 306 Hz
1:4 10 MHz 153 Hz
1:8 5 MHz 77 Hz
1:16 2,5 MHz 39 Hz
1:32 1,25 MHz 20 Hz
1: 64 625 kHz 10 Hz
1:256 312 kHz 5 Hz
* För att få dessa värden för uC32 och WF32, helt enkelt multiplicera var och en av frekvenserna som 2.
Lysdioder
Både DP32 och WF32 har fyra inbyggda lysdioder som refereras med PIN_LED # konstanterna. Detta gör med uC32 lite svårare, eftersom du måste byta ut någon hänvisning till PIN_LED # till LED_ #. Så kan du ställa in vilket externa stift är anslutna till lysdioder själv.
Du måste naturligtvis också, Ställ in några externa lysdioder.
Bitars Offset
I föregående steg förklarade jag hur varje LED är mappad till lite i våra räknande variabel. Bitars offset kan du ändra vilken del av variabeln varje LED mappas till. Ökar lite offset effektivt saktar ner hur snabbt den lysdioder blinkar.