Optimalisering av kode for PWMEffektivitet

For enkelte prosjekter, er det greit å ha en mikrokontroller twiddling det er tommelen mange av tiden. Når et prosjekt krever at CPUen skal gjøre bare én ting igjen og igjen, er det ingen tap med ineffektiv kode – det virker enten eller det gjør det ikke. Men hvis et prosjekt krever en mikrokontroller til å gjøre flere ting samtidig, for eksempel å lese sensorer, dimmer lysdioder og skrive serielle data ut, kan CPU-utnyttelse bli et problem. [Robert] var ikke fornøyd med koden han pleide å styre en streng av lysdioder, så han rewrote sin kode. Med den gamle implementeringen, [Robert] ‘s kode brukt 60% av CPU-tiden. Med den nye og forbedrede koden var CPU bare opptatt 8% av tiden.

Koden fungerer ved å bruke en maskinvaretimer for å sette av en avbrudd. Etter å ha beregnet neste gang den burde løpe igjen, og endre tilstanden til datalinjen, sitter koden bare stille til det er nødvendig igjen.

Det er ikke en pen hack, eller til og med en du kan holde i hendene, men [Robert] er bestemmelse i å få en μC for å gjøre det han vil, er beundringsverdig.