SHT21 CODE WITH TIMER and interruption

Dependencies:   mbed

Fork of SHT21_ncleee by Graeme Coapes

Committer:
abdelah
Date:
Wed Jan 24 09:02:31 2018 +0000
Revision:
4:2daacfab92a8
program for sht21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abdelah 4:2daacfab92a8 1 #include "mbed.h"
abdelah 4:2daacfab92a8 2 #include "SHT21_ncleee.h"
abdelah 4:2daacfab92a8 3
abdelah 4:2daacfab92a8 4 DigitalOut myled(LED1);
abdelah 4:2daacfab92a8 5 Serial pc(USBTX, USBRX);
abdelah 4:2daacfab92a8 6 I2C i2c(I2C_SDA, I2C_SCL);
abdelah 4:2daacfab92a8 7 SHT21 sht(&i2c);
abdelah 4:2daacfab92a8 8 InterruptIn button(USER_BUTTON);
abdelah 4:2daacfab92a8 9
abdelah 4:2daacfab92a8 10 bool ISR_Flag=true;
abdelah 4:2daacfab92a8 11
abdelah 4:2daacfab92a8 12 Ticker timer;
abdelah 4:2daacfab92a8 13
abdelah 4:2daacfab92a8 14 int indice=0;
abdelah 4:2daacfab92a8 15 int tab[10][2];
abdelah 4:2daacfab92a8 16 int test;
abdelah 4:2daacfab92a8 17
abdelah 4:2daacfab92a8 18 char buffer[32];
abdelah 4:2daacfab92a8 19
abdelah 4:2daacfab92a8 20 void pressed()
abdelah 4:2daacfab92a8 21 {
abdelah 4:2daacfab92a8 22 test=1;
abdelah 4:2daacfab92a8 23 }
abdelah 4:2daacfab92a8 24 void released()
abdelah 4:2daacfab92a8 25 {
abdelah 4:2daacfab92a8 26 test=0;
abdelah 4:2daacfab92a8 27 }
abdelah 4:2daacfab92a8 28
abdelah 4:2daacfab92a8 29 void bla()
abdelah 4:2daacfab92a8 30
abdelah 4:2daacfab92a8 31 {
abdelah 4:2daacfab92a8 32
abdelah 4:2daacfab92a8 33 //pc.printf("Hello World...\n\tTesting humidity Sensor\n");
abdelah 4:2daacfab92a8 34
abdelah 4:2daacfab92a8 35 time_t seconds = time(NULL);
abdelah 4:2daacfab92a8 36 int humidity = sht.readHumidity();
abdelah 4:2daacfab92a8 37 int temperature = sht.readTemp();
abdelah 4:2daacfab92a8 38
abdelah 4:2daacfab92a8 39 tab[indice][0] = humidity;
abdelah 4:2daacfab92a8 40 tab[indice][1] = temperature;
abdelah 4:2daacfab92a8 41
abdelah 4:2daacfab92a8 42 /*pc.printf(" hum is: %d \n", humidity);
abdelah 4:2daacfab92a8 43 pc.printf(" temp is: %d \n", temperature);*/
abdelah 4:2daacfab92a8 44
abdelah 4:2daacfab92a8 45 if(indice > 9) {
abdelah 4:2daacfab92a8 46
abdelah 4:2daacfab92a8 47 for(int i = 0; i<10; i++) {
abdelah 4:2daacfab92a8 48
abdelah 4:2daacfab92a8 49
abdelah 4:2daacfab92a8 50 //pc.printf("%d / %d / \n", tab[i][0], tab[i][1]);
abdelah 4:2daacfab92a8 51 if(test==1){
abdelah 4:2daacfab92a8 52 indice = 0;
abdelah 4:2daacfab92a8 53 }
abdelah 4:2daacfab92a8 54 }
abdelah 4:2daacfab92a8 55 } else {
abdelah 4:2daacfab92a8 56 pc.printf(" indice= %d \n", indice);
abdelah 4:2daacfab92a8 57 pc.printf(" humidity= %d \n", humidity);
abdelah 4:2daacfab92a8 58 pc.printf(" temperature= %d \n", temperature);
abdelah 4:2daacfab92a8 59 strftime(buffer, 32, "%I:%M:%S %p\n", localtime(&seconds));
abdelah 4:2daacfab92a8 60 printf("Heure = %s", buffer);
abdelah 4:2daacfab92a8 61 indice = indice +1;
abdelah 4:2daacfab92a8 62 }
abdelah 4:2daacfab92a8 63
abdelah 4:2daacfab92a8 64 ISR_Flag=false;
abdelah 4:2daacfab92a8 65 }
abdelah 4:2daacfab92a8 66
abdelah 4:2daacfab92a8 67 void isr2(void)
abdelah 4:2daacfab92a8 68 {
abdelah 4:2daacfab92a8 69 ISR_Flag=true;
abdelah 4:2daacfab92a8 70 }
abdelah 4:2daacfab92a8 71
abdelah 4:2daacfab92a8 72 //}
abdelah 4:2daacfab92a8 73
abdelah 4:2daacfab92a8 74
abdelah 4:2daacfab92a8 75 int main()
abdelah 4:2daacfab92a8 76 {
abdelah 4:2daacfab92a8 77 button.fall(&pressed);
abdelah 4:2daacfab92a8 78 button.rise(&released);
abdelah 4:2daacfab92a8 79 timer.attach(&isr2,3);
abdelah 4:2daacfab92a8 80 //set_time(1387188323); // Set RTC time to 16 December 2013 10:05:23 UTC
abdelah 4:2daacfab92a8 81 while(1)
abdelah 4:2daacfab92a8 82 {
abdelah 4:2daacfab92a8 83 if(ISR_Flag==true){bla();}
abdelah 4:2daacfab92a8 84 }
abdelah 4:2daacfab92a8 85 }
abdelah 4:2daacfab92a8 86