Hallo, ich bin noch relativ neue im Bereich der uP Programmierung und daher bitte ich gleich mal um Entschuldigung fuer meine wahrscheinlich trivialen Fragen... ...ich moechte gerne einen ADC meines PICs verwenden und brauche dazu eine delay-Funktion um die sample-Zeit vorzugeben.... ...ich programmiere in MPLAB mit C30 Compiler...gibt es da vorgegebene Funktionen fuer ein Delay? bzw. gibt es andere Moeglichkeiten dem ADC des Pics die Sample time anzugeben? ...mein Code im main.c schaut ungefaehr so aus: int ADCValue; AD1PCFG = 0xFFFB; //set AN2 as analog AD1CON1 = 0x0000; //SAMP bit=0 ends sampling AD1CHS = 0x0002; //connect AN2 as CH0 input AD1CSSL = 0; AD1CON3 = 0x0002; //Manual Sample, Tad=2Tcy AD1CON2 = 0; AD1CON1bits.ADON = 1; //Turn on ADC while(1) { AD1CON1bits.SAMP=1; //start sampling Delay(10); AD1CON1bits.SAMP=0; //start converting while(!AD1CON1bits.DONE); //conversion done? ADCValue = ADC1BUF0; //yes then get ADC value } ..und die Delayfunktion hab ich hier nur mal so reingeschrieben...
Am elegantesten loest Du das ueber einen Timer-Interrupt (der ADC wird in der Interrupt-Routine gestartet und gelesen0 - dann bleibt Deine Hauptroutine frei fuer andere Taetigkeiten.
Wenn wir wüssten, welchen PIC Du einsetzt, würden wir glatt im Datenblatt nachsehen, ob der PIC die Fähigkeit hat, die Sample-Zeit automatisch abzuarbeiten (ADxCON3: SAMC) und Dir die Suche nach dem richtigen C-Befehl ersparen.
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.