سلام.
وقتی این برنامه رو روی برد 1768 تست میکنم با چرخاندن ولوم نور آل ای دی ها کم و زیاد میشه،الان متوجه نمیشم چه جوری این اتفاق میفته، مگه وقتی مقدار متغیر a رو روی پورت دو قرار میدهم قرار نیست متناسب با بیت ها آل ای دی رو روشن کنه؟چطور نورشون کم و زیاد میشه؟
SystemInit();
LPC_GPIO2->FIODIR = 0xfff;
LPC_PINCON->PINSEL3 |= (3UL<<30); /* P1.31 is AD0.5 */
LPC_SC->PCONP |= (1<<12); /* Enable power to ADC block */
LPC_ADC->ADCR = (1<< 5) | /* select AD0.5 pin */
(4<< 8) | /* ADC clock is 25MHz/5 */
(1<<21); /* enable ADC */
while(1){
LPC_ADC->ADCR &= ~(7<<24); /* stop conversion */
LPC_ADC->ADCR |= (1<<24); /* start conversion */
while (!(LPC_ADC->ADGDR & (1UL<<31))); /* Wait for Conversion end */
a = (LPC_ADC->ADGDR>>4 & 0xfff);
LPC_GPIO2->FIOPIN = a>>4;
}
}
وقتی این برنامه رو روی برد 1768 تست میکنم با چرخاندن ولوم نور آل ای دی ها کم و زیاد میشه،الان متوجه نمیشم چه جوری این اتفاق میفته، مگه وقتی مقدار متغیر a رو روی پورت دو قرار میدهم قرار نیست متناسب با بیت ها آل ای دی رو روشن کنه؟چطور نورشون کم و زیاد میشه؟
SystemInit();
LPC_GPIO2->FIODIR = 0xfff;
LPC_PINCON->PINSEL3 |= (3UL<<30); /* P1.31 is AD0.5 */
LPC_SC->PCONP |= (1<<12); /* Enable power to ADC block */
LPC_ADC->ADCR = (1<< 5) | /* select AD0.5 pin */
(4<< 8) | /* ADC clock is 25MHz/5 */
(1<<21); /* enable ADC */
while(1){
LPC_ADC->ADCR &= ~(7<<24); /* stop conversion */
LPC_ADC->ADCR |= (1<<24); /* start conversion */
while (!(LPC_ADC->ADGDR & (1UL<<31))); /* Wait for Conversion end */
a = (LPC_ADC->ADGDR>>4 & 0xfff);
LPC_GPIO2->FIOPIN = a>>4;
}
}