1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| float rtdv, rtdr, temp, y;
int msd, isd, i;
char temperature[6];
char uart_rd;
calcule()
{
rtdv=rtdv *5/1024;
rtdv=rtdv/5;
rtdr=rtdv*1000.0/(5.0-rtdv);
y=0.15274-(rtdr-100.065)*0.0002310;
if (y>=0)y = sqrt(y);
temp = (y-0.39083)/(-0.0001155);
bytetostr(temp,temperature);
delay_ms(1);
}
affichage()
{
UART1_Write_Text(temperature);
strcpy(temperature,"");
UART1_Write(13);
}
void main()
{
TRISA = 0xFF;
TRISE = 0xFF;
TRISB = 0x00;
PORTB = 1;
UART1_Init(9600);
for(;;)
{ portb.f1=1;
if (UART1_data_ready())
{
uart_rd = UART1_read();
if(uart_rd=='c') // envoie de la lettre c
{
PORTB.f0=1; // port RB0 est à 1
for (i=0;i<6;i++)
{
delay_ms(5);
rtdv=adc_read(i);
UART1_Write(13);
calcule();
affichage();
}
PORTB.f0=~portb.f0; // port RB0 prend le complément de l'état avant
for (i=0;i<6;i++)
{
delay_ms(5);
rtdv=adc_read(i);
UART1_Write(13);
calcule();
affichage();
}
}
}
}
} |
Partager