jksjdjs

Dependencies:   mbed

Revision:
0:1ebff0f002c9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Aug 23 21:47:25 2014 +0000
@@ -0,0 +1,140 @@
+#include "mbed.h"
+  
+ 
+DigitalOut on_led(LED_RED);
+BusOut display(PTB18, PTB19, PTC1, PTC8, PTC9, PTC0, PTC7);
+//BusOut display(PTC5, PTC7, PTC0, PTC9, PTC8, PTC1, PTB19, PTB18);
+BusOut segmento( PTC16, PTC17, PTB9, PTA1);
+DigitalOut punto(PTC5);
+DigitalOut punto_c(PTB23);
+double calc_tem ();
+AnalogIn tem_pin (A0);
+ 
+ 
+int c = 0;
+ 
+void prende(int num);
+void prende_segmento(int num, int seg);
+ 
+int main(){
+ display =0xFF;
+ segmento = 0;
+ punto= 1;
+ wait (2);
+ punto_c= 1;
+ 
+    while (true) {
+        double t= calc_tem();
+        int x= t;
+        printf ("%d\n\r",x);
+        prende(x);
+   
+    }
+}
+ 
+void prende(int num){
+    int centenas, decenas, unidades;
+    
+    centenas = num / 100;
+    decenas = (num - (centenas * 100 )) / 10;
+    unidades = num - (centenas * 100 ) - (decenas * 10);
+    
+    if (centenas != 0){
+        prende_segmento(centenas, 1);
+    }else{
+        prende_segmento(0, 1);
+    }
+    
+    if (decenas != 0){
+        prende_segmento(decenas, 2);
+    }else{
+        prende_segmento(0, 2);
+    }
+    
+    if (centenas != 0){
+        prende_segmento(unidades, 3);
+    }else{
+        prende_segmento(0, 3);
+    }
+    prende_segmento(10,4);
+ 
+}
+ 
+void prende_segmento(int num, int seg){
+    
+    switch (num){
+        case 0:
+            display = 64;
+            break;
+        case 1:
+            display = 121;
+            break;
+        case 2:
+            display = 36;
+            break;
+        case 3:
+            display = 48;
+            break;
+        case 4:
+            display = 25;
+            break;
+        case 5:
+            display = 18;
+            break;
+        case 6:
+            display = 2;
+            break;
+        case 7:
+            display = 120;
+            break;
+        case 8:
+            display = 0;
+            break;
+        case 9:
+            display = 24;
+            break;
+        default:
+            display = 0xFF ;
+    }
+   
+    switch (seg){
+        case 1:
+            segmento = 1;
+            wait (0.001);
+            break;
+        case 2:
+            segmento = 2;
+            punto= 0;
+            wait (0.001);
+            break;
+        case 3:
+            segmento = 4;
+            punto=1;
+            wait (0.001);
+            break;
+        case 4:
+            display= 70;
+            segmento = 8;
+            wait (0.001);
+            break;
+        default:
+            segmento = 0;
+            wait (0.001);
+    }
+    }
+double calc_tem(){
+double tem;
+tem = tem_pin;
+tem = tem * 3.3;
+tem = (4.8*8.81) / tem - 8.81;
+
+printf("tem %f\n\r", tem);
+
+tem = (1 / (0.002301985 + 0.0002758611* log(tem) + pow(0.000000416479325577 * log(tem),3))) - 273.15;
+
+
+
+return tem; 
+}   
+
+