![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
jksjdjs
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 00004 DigitalOut on_led(LED_RED); 00005 BusOut display(PTB18, PTB19, PTC1, PTC8, PTC9, PTC0, PTC7); 00006 //BusOut display(PTC5, PTC7, PTC0, PTC9, PTC8, PTC1, PTB19, PTB18); 00007 BusOut segmento( PTC16, PTC17, PTB9, PTA1); 00008 DigitalOut punto(PTC5); 00009 DigitalOut punto_c(PTB23); 00010 double calc_tem (); 00011 AnalogIn tem_pin (A0); 00012 00013 00014 int c = 0; 00015 00016 void prende(int num); 00017 void prende_segmento(int num, int seg); 00018 00019 int main(){ 00020 display =0xFF; 00021 segmento = 0; 00022 punto= 1; 00023 wait (2); 00024 punto_c= 1; 00025 00026 while (true) { 00027 double t= calc_tem(); 00028 int x= t; 00029 printf ("%d\n\r",x); 00030 prende(x); 00031 00032 } 00033 } 00034 00035 void prende(int num){ 00036 int centenas, decenas, unidades; 00037 00038 centenas = num / 100; 00039 decenas = (num - (centenas * 100 )) / 10; 00040 unidades = num - (centenas * 100 ) - (decenas * 10); 00041 00042 if (centenas != 0){ 00043 prende_segmento(centenas, 1); 00044 }else{ 00045 prende_segmento(0, 1); 00046 } 00047 00048 if (decenas != 0){ 00049 prende_segmento(decenas, 2); 00050 }else{ 00051 prende_segmento(0, 2); 00052 } 00053 00054 if (centenas != 0){ 00055 prende_segmento(unidades, 3); 00056 }else{ 00057 prende_segmento(0, 3); 00058 } 00059 prende_segmento(10,4); 00060 00061 } 00062 00063 void prende_segmento(int num, int seg){ 00064 00065 switch (num){ 00066 case 0: 00067 display = 64; 00068 break; 00069 case 1: 00070 display = 121; 00071 break; 00072 case 2: 00073 display = 36; 00074 break; 00075 case 3: 00076 display = 48; 00077 break; 00078 case 4: 00079 display = 25; 00080 break; 00081 case 5: 00082 display = 18; 00083 break; 00084 case 6: 00085 display = 2; 00086 break; 00087 case 7: 00088 display = 120; 00089 break; 00090 case 8: 00091 display = 0; 00092 break; 00093 case 9: 00094 display = 24; 00095 break; 00096 default: 00097 display = 0xFF ; 00098 } 00099 00100 switch (seg){ 00101 case 1: 00102 segmento = 1; 00103 wait (0.001); 00104 break; 00105 case 2: 00106 segmento = 2; 00107 punto= 0; 00108 wait (0.001); 00109 break; 00110 case 3: 00111 segmento = 4; 00112 punto=1; 00113 wait (0.001); 00114 break; 00115 case 4: 00116 display= 70; 00117 segmento = 8; 00118 wait (0.001); 00119 break; 00120 default: 00121 segmento = 0; 00122 wait (0.001); 00123 } 00124 } 00125 double calc_tem(){ 00126 double tem; 00127 tem = tem_pin; 00128 tem = tem * 3.3; 00129 tem = (4.8*8.81) / tem - 8.81; 00130 00131 printf("tem %f\n\r", tem); 00132 00133 tem = (1 / (0.002301985 + 0.0002758611* log(tem) + pow(0.000000416479325577 * log(tem),3))) - 273.15; 00134 00135 00136 00137 return tem; 00138 } 00139 00140
Generated on Sat Aug 6 2022 11:05:56 by
![doxygen](doxygen.png)