#include "LPC17xx.H" /* LPC17xx definitions */
unsigned short AD_last; /* Last converted value */
unsigned char clock_1s; /* Flag activated each second */
/*----------------------------------------------------------------------------
SysTick IRQ: Executed periodically
*----------------------------------------------------------------------------*/
void SysTick_Handler (void) { /* SysTick Interrupt Handler (10ms) */
static unsigned long ticks;
if (ticks++ >= 99) /* Set Clock1s to 1 every 1 second */
{
ticks = 0;
clock_1s = 1;
}
LPC_ADC->ADCR |= (1<<24); /* Start A/D Conversion */
}
/*----------------------------------------------------------------------------
A/D IRQ: Executed when A/D Conversion is done
*----------------------------------------------------------------------------*/
void ADC_IRQHandler(void) {
AD_last = (LPC_ADC->ADGDR>>4) & 0xFFF; /* Read Conversion Result */
}
ผมไม่เข้าใจหลักการของบรรทัดที่hilightไว้อะครับ
ส่วนแรกไม่เข้าใจว่านับยังไง
ส่วนที่สอง ไม่เข้าใจว่า ADGDR>>4 ความหมายคืออะไร
อีกอย่างช่วยแนะนำด้วยครับว่าถ้าต้องการจะเขียนADC 3 channel ต้องเขียนยังไง
อยากให้พี่ๆในบอร์ดช่วยแนะนำด้วยนะครับ ผมเพิ่งจะหัดทำ ยังทำอะไรไม่เป็นเลย