jksjdjs

Dependencies:   mbed

Committer:
Sarahi
Date:
Sat Aug 23 21:47:25 2014 +0000
Revision:
0:1ebff0f002c9
jsjdks

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sarahi 0:1ebff0f002c9 1 #include "mbed.h"
Sarahi 0:1ebff0f002c9 2
Sarahi 0:1ebff0f002c9 3
Sarahi 0:1ebff0f002c9 4 DigitalOut on_led(LED_RED);
Sarahi 0:1ebff0f002c9 5 BusOut display(PTB18, PTB19, PTC1, PTC8, PTC9, PTC0, PTC7);
Sarahi 0:1ebff0f002c9 6 //BusOut display(PTC5, PTC7, PTC0, PTC9, PTC8, PTC1, PTB19, PTB18);
Sarahi 0:1ebff0f002c9 7 BusOut segmento( PTC16, PTC17, PTB9, PTA1);
Sarahi 0:1ebff0f002c9 8 DigitalOut punto(PTC5);
Sarahi 0:1ebff0f002c9 9 DigitalOut punto_c(PTB23);
Sarahi 0:1ebff0f002c9 10 double calc_tem ();
Sarahi 0:1ebff0f002c9 11 AnalogIn tem_pin (A0);
Sarahi 0:1ebff0f002c9 12
Sarahi 0:1ebff0f002c9 13
Sarahi 0:1ebff0f002c9 14 int c = 0;
Sarahi 0:1ebff0f002c9 15
Sarahi 0:1ebff0f002c9 16 void prende(int num);
Sarahi 0:1ebff0f002c9 17 void prende_segmento(int num, int seg);
Sarahi 0:1ebff0f002c9 18
Sarahi 0:1ebff0f002c9 19 int main(){
Sarahi 0:1ebff0f002c9 20 display =0xFF;
Sarahi 0:1ebff0f002c9 21 segmento = 0;
Sarahi 0:1ebff0f002c9 22 punto= 1;
Sarahi 0:1ebff0f002c9 23 wait (2);
Sarahi 0:1ebff0f002c9 24 punto_c= 1;
Sarahi 0:1ebff0f002c9 25
Sarahi 0:1ebff0f002c9 26 while (true) {
Sarahi 0:1ebff0f002c9 27 double t= calc_tem();
Sarahi 0:1ebff0f002c9 28 int x= t;
Sarahi 0:1ebff0f002c9 29 printf ("%d\n\r",x);
Sarahi 0:1ebff0f002c9 30 prende(x);
Sarahi 0:1ebff0f002c9 31
Sarahi 0:1ebff0f002c9 32 }
Sarahi 0:1ebff0f002c9 33 }
Sarahi 0:1ebff0f002c9 34
Sarahi 0:1ebff0f002c9 35 void prende(int num){
Sarahi 0:1ebff0f002c9 36 int centenas, decenas, unidades;
Sarahi 0:1ebff0f002c9 37
Sarahi 0:1ebff0f002c9 38 centenas = num / 100;
Sarahi 0:1ebff0f002c9 39 decenas = (num - (centenas * 100 )) / 10;
Sarahi 0:1ebff0f002c9 40 unidades = num - (centenas * 100 ) - (decenas * 10);
Sarahi 0:1ebff0f002c9 41
Sarahi 0:1ebff0f002c9 42 if (centenas != 0){
Sarahi 0:1ebff0f002c9 43 prende_segmento(centenas, 1);
Sarahi 0:1ebff0f002c9 44 }else{
Sarahi 0:1ebff0f002c9 45 prende_segmento(0, 1);
Sarahi 0:1ebff0f002c9 46 }
Sarahi 0:1ebff0f002c9 47
Sarahi 0:1ebff0f002c9 48 if (decenas != 0){
Sarahi 0:1ebff0f002c9 49 prende_segmento(decenas, 2);
Sarahi 0:1ebff0f002c9 50 }else{
Sarahi 0:1ebff0f002c9 51 prende_segmento(0, 2);
Sarahi 0:1ebff0f002c9 52 }
Sarahi 0:1ebff0f002c9 53
Sarahi 0:1ebff0f002c9 54 if (centenas != 0){
Sarahi 0:1ebff0f002c9 55 prende_segmento(unidades, 3);
Sarahi 0:1ebff0f002c9 56 }else{
Sarahi 0:1ebff0f002c9 57 prende_segmento(0, 3);
Sarahi 0:1ebff0f002c9 58 }
Sarahi 0:1ebff0f002c9 59 prende_segmento(10,4);
Sarahi 0:1ebff0f002c9 60
Sarahi 0:1ebff0f002c9 61 }
Sarahi 0:1ebff0f002c9 62
Sarahi 0:1ebff0f002c9 63 void prende_segmento(int num, int seg){
Sarahi 0:1ebff0f002c9 64
Sarahi 0:1ebff0f002c9 65 switch (num){
Sarahi 0:1ebff0f002c9 66 case 0:
Sarahi 0:1ebff0f002c9 67 display = 64;
Sarahi 0:1ebff0f002c9 68 break;
Sarahi 0:1ebff0f002c9 69 case 1:
Sarahi 0:1ebff0f002c9 70 display = 121;
Sarahi 0:1ebff0f002c9 71 break;
Sarahi 0:1ebff0f002c9 72 case 2:
Sarahi 0:1ebff0f002c9 73 display = 36;
Sarahi 0:1ebff0f002c9 74 break;
Sarahi 0:1ebff0f002c9 75 case 3:
Sarahi 0:1ebff0f002c9 76 display = 48;
Sarahi 0:1ebff0f002c9 77 break;
Sarahi 0:1ebff0f002c9 78 case 4:
Sarahi 0:1ebff0f002c9 79 display = 25;
Sarahi 0:1ebff0f002c9 80 break;
Sarahi 0:1ebff0f002c9 81 case 5:
Sarahi 0:1ebff0f002c9 82 display = 18;
Sarahi 0:1ebff0f002c9 83 break;
Sarahi 0:1ebff0f002c9 84 case 6:
Sarahi 0:1ebff0f002c9 85 display = 2;
Sarahi 0:1ebff0f002c9 86 break;
Sarahi 0:1ebff0f002c9 87 case 7:
Sarahi 0:1ebff0f002c9 88 display = 120;
Sarahi 0:1ebff0f002c9 89 break;
Sarahi 0:1ebff0f002c9 90 case 8:
Sarahi 0:1ebff0f002c9 91 display = 0;
Sarahi 0:1ebff0f002c9 92 break;
Sarahi 0:1ebff0f002c9 93 case 9:
Sarahi 0:1ebff0f002c9 94 display = 24;
Sarahi 0:1ebff0f002c9 95 break;
Sarahi 0:1ebff0f002c9 96 default:
Sarahi 0:1ebff0f002c9 97 display = 0xFF ;
Sarahi 0:1ebff0f002c9 98 }
Sarahi 0:1ebff0f002c9 99
Sarahi 0:1ebff0f002c9 100 switch (seg){
Sarahi 0:1ebff0f002c9 101 case 1:
Sarahi 0:1ebff0f002c9 102 segmento = 1;
Sarahi 0:1ebff0f002c9 103 wait (0.001);
Sarahi 0:1ebff0f002c9 104 break;
Sarahi 0:1ebff0f002c9 105 case 2:
Sarahi 0:1ebff0f002c9 106 segmento = 2;
Sarahi 0:1ebff0f002c9 107 punto= 0;
Sarahi 0:1ebff0f002c9 108 wait (0.001);
Sarahi 0:1ebff0f002c9 109 break;
Sarahi 0:1ebff0f002c9 110 case 3:
Sarahi 0:1ebff0f002c9 111 segmento = 4;
Sarahi 0:1ebff0f002c9 112 punto=1;
Sarahi 0:1ebff0f002c9 113 wait (0.001);
Sarahi 0:1ebff0f002c9 114 break;
Sarahi 0:1ebff0f002c9 115 case 4:
Sarahi 0:1ebff0f002c9 116 display= 70;
Sarahi 0:1ebff0f002c9 117 segmento = 8;
Sarahi 0:1ebff0f002c9 118 wait (0.001);
Sarahi 0:1ebff0f002c9 119 break;
Sarahi 0:1ebff0f002c9 120 default:
Sarahi 0:1ebff0f002c9 121 segmento = 0;
Sarahi 0:1ebff0f002c9 122 wait (0.001);
Sarahi 0:1ebff0f002c9 123 }
Sarahi 0:1ebff0f002c9 124 }
Sarahi 0:1ebff0f002c9 125 double calc_tem(){
Sarahi 0:1ebff0f002c9 126 double tem;
Sarahi 0:1ebff0f002c9 127 tem = tem_pin;
Sarahi 0:1ebff0f002c9 128 tem = tem * 3.3;
Sarahi 0:1ebff0f002c9 129 tem = (4.8*8.81) / tem - 8.81;
Sarahi 0:1ebff0f002c9 130
Sarahi 0:1ebff0f002c9 131 printf("tem %f\n\r", tem);
Sarahi 0:1ebff0f002c9 132
Sarahi 0:1ebff0f002c9 133 tem = (1 / (0.002301985 + 0.0002758611* log(tem) + pow(0.000000416479325577 * log(tem),3))) - 273.15;
Sarahi 0:1ebff0f002c9 134
Sarahi 0:1ebff0f002c9 135
Sarahi 0:1ebff0f002c9 136
Sarahi 0:1ebff0f002c9 137 return tem;
Sarahi 0:1ebff0f002c9 138 }
Sarahi 0:1ebff0f002c9 139
Sarahi 0:1ebff0f002c9 140