InterruptIn speed check

Dependencies:   FastPWM mbed

Fork of InterruptIn_speed by Erik -

Committer:
Sissors
Date:
Mon Dec 15 11:55:08 2014 +0000
Revision:
4:f871f375cd99
Parent:
3:7745ac0591aa
Child:
5:d49b6c1a35e3
-

Who changed what in which revision?

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