Hallo,
ich habe eine Frage bezüglich dem AD-Wanlder vom MCB4300-Controller.
Der Controller hat zwei AD-Wandler (AD0 und AD1 mit je 8 Kanälen).
Und zwar wenn ich nur den AD0-Wandler - Channel 0 programmiere,
funktioniert es einwandfrei.
Jedoch möchte ich den AD0-Wandler - Channel 1 zeitgleich nutzen bzw.
überhaupt nutzen können.
Hat jemand eventuell eine Ahnung wie man das realisieren kann oder
eventuell eine Erfahrungen mit dem AD-Wandler vom MCB4300?
Ich bin noch neu in dieser Sache und bräuchte Hilfe in dieser
Angelegenheit.
Das sind die verwendeten Funktionen:
int32_t ADC_Initialize (void) {
/* Enable ADC0 clock */
LPC_CCU1->CLK_APB3_ADC0_CFG = CCU_CLK_CFG_AUTO | CCU_CLK_CFG_RUN;
while (!(LPC_CCU1->CLK_APB3_ADC0_STAT & CCU_CLK_STAT_RUN));
/* Configure ADC0_0 */
LPC_ADC0->CR = (1 << 1) | /* Select ADC0_1 pin for
conversion */
(2 << 8) | /* 12MHz / (2+1) = 4MHz */
(1 << 21) ; /* ADC is operational */
return 0;
}
int32_t ADC_StartConversion (void) {
LPC_ADC0->CR |= (1 << 24); /* Start conversion */
return 0;
}
int32_t ADC_GetValue (void) {
if (AD_done) {
AD_done = 0;
return AD_last;
}
return -1;
}
void ADC0_IRQHandler (void) {
LPC_ADC0->GDR; /* Clear IRQ request flag */
AD_last = (LPC_ADC0->DR[1] >> 6) & 0x3FF; /* Read value and clear IRQ
*/
AD_done = 1;
}
Bei der obigen Funktion habe ich einen Teil vergessen anzugeben. Und
zwar den "Enable ADC0 Channel 1 interrupt".
int32_t ADC_Initialize (void) {
/* Enable ADC0 clock */
LPC_CCU1->CLK_APB3_ADC0_CFG = CCU_CLK_CFG_AUTO | CCU_CLK_CFG_RUN;
while (!(LPC_CCU1->CLK_APB3_ADC0_STAT & CCU_CLK_STAT_RUN));
/* Configure ADC0_1 */
LPC_ADC0->CR = (1 << 1) | /* Select ADC0_1 pin for
conversion */
(2 << 8) | /* 12MHz / (2+1) = 4MHz
*/
(1 << 21) ; /* ADC is operational
*/
/* Enable ADC0 Channel 1 interrupt */
LPC_ADC0->INTEN |= (1 << 1);
NVIC_EnableIRQ (ADC0_IRQn);
return 0;
}
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.