Subversion Repositories EngineBay2

Rev

Rev 23 | Rev 25 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 23 Rev 24
Line 342... Line 342...
342
}
342
}
343
 
343
 
344
void ProcessCPUTemperature(int instance)
344
void ProcessCPUTemperature(int instance)
345
{
345
{
346
        int32_t temp_val;
346
        int32_t temp_val;
-
 
347
 
347
        uint16_t TS_CAL30 = *(uint16_t *) (0x1FF8007AUL); /* ADC reading for temperature sensor at 30 degrees C with Vref = 3000mV */
348
        uint16_t TS_CAL30 = *(uint16_t *) (0x1FF8007AUL); /* ADC reading for temperature sensor at 30 degrees C with Vref = 3000mV */
348
        uint16_t TS_CAL110 = *(uint16_t *) (0x1FF8007EUL); /* ADC reading for temperature sensor at 110 degrees C with Vref = 3000mV */
349
        uint16_t TS_CAL110 = *(uint16_t *) (0x1FF8007EUL); /* ADC reading for temperature sensor at 110 degrees C with Vref = 3000mV */
349
        /* get the ADC reading corresponding to ADC channel 16 after turning on the ADC */
350
        /* get the ADC reading corresponding to ADC channel 16 after turning on the ADC */
350
 
351
 
351
        temp_val = FILT_Samples[5];
352
        temp_val = FILT_Samples[5];
Line 367... Line 368...
367
}
368
}
368
 
369
 
369
// the MAP sensor is giving us a reading of
370
// the MAP sensor is giving us a reading of
370
// 4.6 volts for 1019mB or 2.27 volts at the ADC input (resistive divider by 2.016)
371
// 4.6 volts for 1019mB or 2.27 volts at the ADC input (resistive divider by 2.016)
371
// I believe the sensor reads  4.5V at 1000kPa and 0.5V at  0kPa
372
// I believe the sensor reads  4.5V at 1000kPa and 0.5V at  0kPa
-
 
373
// Calibration is a bit off
-
 
374
// Real   Displayed
-
 
375
// 989    968
-
 
376
// 994.1    986
-
 
377
// 992.3  984
372
 
378
 
373
void ProcessMAP(int instance)
379
void ProcessMAP(int instance)
374
{
380
{
375
// Using ADC_Samples[3] as the MAP input
381
// Using ADC_Samples[3] as the MAP input
376
        float reading = FILT_Samples[3] * ADC_Scale;
382
        float reading = FILT_Samples[3] * ADC_Scale;
377
        reading = reading * 2.016;      // real voltage
383
        reading = reading * 2.016;      // real voltage
-
 
384
        // values computed from slope / intercept of map.ods
378
        reading = (reading) * 1000 / 4.5; // do not assume 0.5 volt offset : reading from 0 to 4.5 instead of 0.5 to 4.5
385
        reading = (reading) * 56.23 + 743.2; // do not assume 0.5 volt offset : reading from 0 to 4.5 instead of 0.5 to 4.5
379
        plx_sendword(PLX_MAP);
386
        plx_sendword(PLX_MAP);
380
        PutCharSerial(&uc1, instance);
387
        PutCharSerial(&uc1, instance);
381
        plx_sendword((uint16_t) reading);
388
        plx_sendword((uint16_t) reading);
382
 
389
 
383
}
390
}