test de TSL230 circuit conversion lumière/frequence

Dependencies:   mbed

Committer:
bouaziz
Date:
Thu Oct 13 22:24:09 2011 +0000
Revision:
0:94a3a01d13c2
Child:
1:0ef745d284a1
version v0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bouaziz 0:94a3a01d13c2 1 /*
bouaziz 0:94a3a01d13c2 2 ****************************************************
bouaziz 0:94a3a01d13c2 3 Frequency is measured by interrupts.
bouaziz 0:94a3a01d13c2 4
bouaziz 0:94a3a01d13c2 5 Wiring: TSL230 mBed
bouaziz 0:94a3a01d13c2 6 p1(s0) H (p39)
bouaziz 0:94a3a01d13c2 7 p2(s1) L (p1)
bouaziz 0:94a3a01d13c2 8 p7(s2) H (p39)
bouaziz 0:94a3a01d13c2 9 p8(s3) H (p39)
bouaziz 0:94a3a01d13c2 10 p6(out) p11
bouaziz 0:94a3a01d13c2 11 les pattes du TSL230 qui reste :
bouaziz 0:94a3a01d13c2 12 p3(OE), p4(GND) tied to ground. p5(Vcc) tied to 3V3.
bouaziz 0:94a3a01d13c2 13
bouaziz 0:94a3a01d13c2 14 Author: Samir Bouaziz. october 2011.
bouaziz 0:94a3a01d13c2 15 *********************(******************************
bouaziz 0:94a3a01d13c2 16 */
bouaziz 0:94a3a01d13c2 17
bouaziz 0:94a3a01d13c2 18
bouaziz 0:94a3a01d13c2 19 #include "mbed.h"
bouaziz 0:94a3a01d13c2 20
bouaziz 0:94a3a01d13c2 21
bouaziz 0:94a3a01d13c2 22 Serial pc(USBTX, USBRX);
bouaziz 0:94a3a01d13c2 23 InterruptIn in(p11);
bouaziz 0:94a3a01d13c2 24 Timer t,t2;
bouaziz 0:94a3a01d13c2 25
bouaziz 0:94a3a01d13c2 26 float period = 0; // This is the period between interrupts in microseconds
bouaziz 0:94a3a01d13c2 27 float freq = 0;
bouaziz 0:94a3a01d13c2 28 volatile int demiper,n=0,per;
bouaziz 0:94a3a01d13c2 29
bouaziz 0:94a3a01d13c2 30 void itup() {
bouaziz 0:94a3a01d13c2 31 switch(n){
bouaziz 0:94a3a01d13c2 32 case 0 :
bouaziz 0:94a3a01d13c2 33 t.start();
bouaziz 0:94a3a01d13c2 34 n++;
bouaziz 0:94a3a01d13c2 35 break;
bouaziz 0:94a3a01d13c2 36 case 1 :
bouaziz 0:94a3a01d13c2 37 case 10: t.stop();
bouaziz 0:94a3a01d13c2 38 per=t.read_us();
bouaziz 0:94a3a01d13c2 39 n=0;
bouaziz 0:94a3a01d13c2 40 t.reset();
bouaziz 0:94a3a01d13c2 41 break;
bouaziz 0:94a3a01d13c2 42 default : n++;
bouaziz 0:94a3a01d13c2 43 break;
bouaziz 0:94a3a01d13c2 44 }
bouaziz 0:94a3a01d13c2 45 }
bouaziz 0:94a3a01d13c2 46
bouaziz 0:94a3a01d13c2 47 void itdown() {
bouaziz 0:94a3a01d13c2 48 demiper=t.read_us();
bouaziz 0:94a3a01d13c2 49 t.stop();
bouaziz 0:94a3a01d13c2 50 }
bouaziz 0:94a3a01d13c2 51
bouaziz 0:94a3a01d13c2 52
bouaziz 0:94a3a01d13c2 53 int main() {
bouaziz 0:94a3a01d13c2 54
bouaziz 0:94a3a01d13c2 55 // in.mode(PullUp); // Set the pin to Pull Down mode.
bouaziz 0:94a3a01d13c2 56 in.rise(&itup); // Set up the interrupt for rising edge
bouaziz 0:94a3a01d13c2 57 // in.fall(&itdown); // Set up the interrupt for rising edge
bouaziz 0:94a3a01d13c2 58 while (1) {
bouaziz 0:94a3a01d13c2 59 wait(1);
bouaziz 0:94a3a01d13c2 60 //freq= 100000.0/((float)per);
bouaziz 0:94a3a01d13c2 61 pc.printf("val= %f \r",1000000./(float)per);
bouaziz 0:94a3a01d13c2 62
bouaziz 0:94a3a01d13c2 63 }
bouaziz 0:94a3a01d13c2 64 }
bouaziz 0:94a3a01d13c2 65
bouaziz 0:94a3a01d13c2 66
bouaziz 0:94a3a01d13c2 67