Hallo Leute, Ich möchte den dsPIC33 zum Einlesen von ca. 20 analogen Sensoren benutzen und anschließend über SPI an ein PC senden. SPI und senden funktioniert problemlos. Anders die AD-Einstellungen. Die AN von Microchip funktioniert für die Pins 4,5,10,13. Ich möchte jedoch von 0..19 alle benutzen. Wie muss ich die mitgelieferte init_ADC ändern, dass der Controller das macht? void initAdc1(void) { AD1CON1bits.FORM = 0; // Data Output Format: Integer AD1CON1bits.SSRC = 2; // GP Timer starts conversion AD1CON1bits.ASAM = 1; // begins immediately after conversion AD1CON1bits.AD12B = 0; // 10-bit ADC operation AD1CON2bits.CSCNA = 1; // CH0+ during Sample A bit AD1CON2bits.CHPS = 0; // Converts CH0 AD1CON3bits.ADRC = 0; // ADC Clock is derived from Systems Clock AD1CON3bits.ADCS = 63; // ADC Conversion Clock AD1CON1bits.ADDMABM = 0; // DMA scatter/gather mode AD1CON2bits.SMPI = 3; // 4 ADC Channel is scanned AD1CON4bits.DMABL = 3; // Each buffer contains 8 words //AD1CSSH/AD1CSSL: A/D Input Scan Selection Register AD1CSSH = 0x0000; AD1CSSLbits.CSS4=1; // Enable AN4 for channel scan AD1CSSLbits.CSS5=1; // Enable AN5 for channel scan AD1CSSLbits.CSS10=1; // Enable AN10 for channel scan AD1CSSLbits.CSS13=1; // Enable AN13 for channel scan //AD1PCFGH/AD1PCFGL: Port Configuration Register AD1PCFGL=0xFFFF; AD1PCFGH=0xFFFF; AD1PCFGLbits.PCFG4 = 0; // AN4 as Analog Input AD1PCFGLbits.PCFG5 = 0; // AN5 as Analog Input AD1PCFGLbits.PCFG10 = 0; // AN10 as Analog Input AD1PCFGLbits.PCFG13 = 0; // AN13 as Analog Input IFS0bits.AD1IF = 0; // Clear the A/D interrupt flag bit IEC0bits.AD1IE = 0; // Do Not Enable A/D interrupt AD1CON1bits.ADON = 1; // Turn on the A/D converter tglPinInit(); } Ich dachte mir, setze AD1CSSL = 0xffff und AD1CSSH = 0x0004 danach entsprechend die PCFG Register. Ist das zu einfach, oder sehe ich den Wald vor lauter Bäume nicht? Ich bin für jede Hilfe echt dankbar.
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.