37 lines
912 B
C++
37 lines
912 B
C++
// Eksempel kode for oppsett av timer-interrupt for en konstant samplingsfrekvens
|
|
|
|
#include <TimerOne.h>
|
|
/* Om du ikke har innstallert dette biblioteket
|
|
gå til Sketch -> Include library -> Manage Libraries
|
|
Søk opp TimerOne og innstaller*/
|
|
|
|
// Globale variaber
|
|
volatile int sample; // Holder siste sample
|
|
bool newSample; // Støtte varibel for å sjekke om ny sample er tatt
|
|
|
|
|
|
void setup() {
|
|
// Oppsett av timer interrupt
|
|
Timer1.initialize(500); // 500 mikrosekund mellom hver sample -> gir F_s = 2kHz
|
|
// Argumentet i "attachInterrupt" bestemmer hvilken funskjon som er interrupt handler
|
|
Timer1.attachInterrupt(takeSample);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
if(newSample){
|
|
// Ny sample er tatt
|
|
|
|
/*** Kjør magi her ***/
|
|
|
|
newSample = false;
|
|
}
|
|
}
|
|
|
|
// Interrupt-handler (denne kalles ved hvert interrupt)
|
|
void takeSample(void){
|
|
sample = analogRead(0); // Sampler på A0
|
|
newSample = true;
|
|
}
|
|
|