InterruptIn speed check

Dependencies:   FastPWM mbed

Fork of InterruptIn_speed by Erik -

Committer:
Sissors
Date:
Wed Sep 11 08:33:22 2013 +0000
Revision:
3:7745ac0591aa
Parent:
1:8fb0b4376b5d
Child:
4:f871f375cd99
added if statements
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sissors 0:6f6ef334f848 1 #include "mbed.h"
Sissors 1:8fb0b4376b5d 2 #include "FastPWM.h"
Sissors 1:8fb0b4376b5d 3
Sissors 1:8fb0b4376b5d 4 FastPWM pwm(p21);
Sissors 1:8fb0b4376b5d 5 InterruptIn interrupt(p22);
Sissors 1:8fb0b4376b5d 6
Sissors 1:8fb0b4376b5d 7 volatile int count;
Sissors 1:8fb0b4376b5d 8
Sissors 1:8fb0b4376b5d 9 void interrupt_handler(void)
Sissors 1:8fb0b4376b5d 10 {
Sissors 1:8fb0b4376b5d 11 count++;
Sissors 1:8fb0b4376b5d 12 }
Sissors 1:8fb0b4376b5d 13
Sissors 1:8fb0b4376b5d 14
Sissors 1:8fb0b4376b5d 15 int main (void)
Sissors 1:8fb0b4376b5d 16 {
Sissors 1:8fb0b4376b5d 17 //Start_frequency is 60kHz
Sissors 3:7745ac0591aa 18 double frequency = 65e3;
Sissors 1:8fb0b4376b5d 19 pwm = 0;
Sissors 1:8fb0b4376b5d 20 interrupt.rise(&interrupt_handler);
Sissors 1:8fb0b4376b5d 21
Sissors 0:6f6ef334f848 22 while(1) {
Sissors 1:8fb0b4376b5d 23 //Set PWM period, reset count
Sissors 1:8fb0b4376b5d 24 pwm.period(1/frequency);
Sissors 1:8fb0b4376b5d 25 count = 0;
Sissors 1:8fb0b4376b5d 26
Sissors 1:8fb0b4376b5d 27 //Enable PWM at 50% dutycycle for 1 second
Sissors 1:8fb0b4376b5d 28 pwm = 0.5;
Sissors 1:8fb0b4376b5d 29 wait(1);
Sissors 1:8fb0b4376b5d 30 pwm = 0;
Sissors 1:8fb0b4376b5d 31
Sissors 1:8fb0b4376b5d 32 printf("Expected %.0f edges, measured %d edges.\n", frequency, count);
Sissors 1:8fb0b4376b5d 33 if (count < frequency * 0.9) {
Sissors 1:8fb0b4376b5d 34 printf("Test failed at %.0fkHz!\n\n", frequency / 1000);
Sissors 1:8fb0b4376b5d 35 break;
Sissors 1:8fb0b4376b5d 36 }
Sissors 1:8fb0b4376b5d 37 printf("Test succeeded at %.0fkHz!\n\n", frequency / 1000);
Sissors 1:8fb0b4376b5d 38 frequency += 10e3;
Sissors 1:8fb0b4376b5d 39
Sissors 0:6f6ef334f848 40 }
Sissors 1:8fb0b4376b5d 41 while(1);
Sissors 0:6f6ef334f848 42 }
Sissors 3:7745ac0591aa 43