Hi, ich versuche grade den folgenden Code zum laufen zu bekommen. Für P sollte 100009 raus kommen, aber ich bekomme immer 0xFFFF98E8 raus. Was mache ich denn falsch?
1  | int64_t SENS=40127;  | 
2  | int64_t OFF=36924;  | 
3  | int64_t TCS=23317;  | 
4  | int64_t TCO=23282;  | 
5  | int64_t TREF=33464;  | 
6  | int64_t TEMPSENS=28312;  | 
7  | int64_t temperature;  | 
8  | int64_t dT;  | 
9  | int64_t TEMP;  | 
10  | int64_t Offset;  | 
11  | int64_t Sensitivity;  | 
12  | int64_t pressure;  | 
13  | int64_t P;  | 
14  | uint8_t part1a=130;  | 
15  | uint8_t part2a=193;  | 
16  | uint8_t part3a=62;  | 
17  | uint8_t part1b=138;  | 
18  | uint8_t part2b=162;  | 
19  | uint8_t part3b=26;  | 
20  | |
21  | temperature=(part1a<<16)+(part2a<<8)+part3a;  | 
22  | dT=temperature-TREF*256LL;  | 
23  | TEMP=2000LL+dT*TEMPSENS/8388608LL;  | 
24  | Offset=OFF*65536LL+(TCO*dT)/128LL;  | 
25  | Sensitivity=SENS*32768LL+(TCS*dT)/256LL;  | 
26  | pressure=(part1b<<16)+(part2b<<8)+part3b;  | 
27  | |
28  | P=(pressure*Sensitivity/2097152LL-Offset)/32768LL;  | 
29  | |
30  | x1=(unsigned char)(P>>24);  | 
31  | x2=(unsigned char)(P>>16);  | 
32  | x3=(unsigned char)(P>>8);  | 
33  | x4=(unsigned char)(P);  | 
34  | UARTAusgang(x1,x2,x3,x4);  |