Hallo ich habe hier einen Beispielcode für einen MSC 1210 Controller (Temperatur sensor auslesen). Ich habe jetzt einen regelbaren Widerstand an AIN1 angeschlossen und will den digitalen Wert der angelegten Spannung anzeigen lassen. Hier wird die Funktion "bipolar()" verwendet die anscheinend den Wert enthält. Wie sieht die Funktion aus? Gibt es einfachere Möglichkeiten sich den Wert anzeigen zu lassen? Wo ist der digitale Spannungswert gespeichert? #include <REG1210.H> #include <stdio.h> #include <stdlib.h> #include <math.h> #define LSB 298.0232e-9 /* LSB=5.0/2^24 */ #define ALPHA 2664.7 /* derived for some devices */ extern void autobaud(void); extern long bipolar(void); void main(void) { float volts, temp, resistance, ratio, lr, ave; int i, k, decimation = 1728, samples; CKCON = 0; // 0 MOVX cycle stretch autobaud(); printf(2MSC1210 ADC Temperature Test\n); //Timer Setup USEC= 10; // 11MHz Clock ACLK = 9; // ACLK = 11,0592,000/10 = 1,105,920 Hz // modclock = 1,105,920/64 = 17,280 Hz // Setup ADC PDCON &= 0x0f7; //turn on adc ADMUX = 0x0FF;//Select Temperature Diodes ADCON0 = 0x30;//Vref On, Vref Hi, Buff off, BOD off, PGA=1 ADCON2 = decimation & 0xFF; // LSB of decimation ADCON3 =(decimation>>8) & 0x07; // MSB of decimation ADCON1 = 0x01; // bipolar, auto, self calibration, offset, gain printf ("Calibrating. . .\n"); for (k=0; k<4; k++) { // Wait for Four conversions for filter to settle // after calibration while(!(AIE & 0x20)); // Wait for data ready lr = bipolar(); // Dummy read to clear ADCIRQ } samples = 10; // The number of voltage samples we will average while(1) { ave = 0; for (i = 0; i < samples; i++) { while (!(AIE & 0x20)); // Wait for new next result ave += bipolar() * LSB; // This read clears ADCIRQ } volts = ave/samples; temp = ALPHA * volts - 282.14; printf ("V=%f, resistance=%f, Temp=%f degrees C\n", volts, resistance, temp); }// while } //main
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.