با درود
من تازه شروع کردم به یادگیری زبان C. این تابع یک عدد هشت بیتی میگیره و پس از مقدار دهی به رجیستر ها و راه اندازی مبدل ADC، مقدار رو که از نوع 16بیتی هست بر میگردونه(احتمالا خودتون از ظاهرش فهمیدید دیگه :biggrin: ) لطفا یه توضیحی در مورد این تابع بدین. نمدونم معنی اون عملگر ها چیه. اصولا با این عملگرها و روشهای انتساب مشکل دارم :cry:
من تازه شروع کردم به یادگیری زبان C. این تابع یک عدد هشت بیتی میگیره و پس از مقدار دهی به رجیستر ها و راه اندازی مبدل ADC، مقدار رو که از نوع 16بیتی هست بر میگردونه(احتمالا خودتون از ظاهرش فهمیدید دیگه :biggrin: ) لطفا یه توضیحی در مورد این تابع بدین. نمدونم معنی اون عملگر ها چیه. اصولا با این عملگرها و روشهای انتساب مشکل دارم :cry:
کد:
uint16_t adc_read(uint8_t ch)
{
// select the corresponding channel 0~7
// ANDing with '7' will always keep the value
// of 'ch' between 0 and 7
ch &= 0b00000111; // AND operation with 7
ADMUX = (ADMUX & 0xF8)|ch; // clears the bottom 3 bits before ORing
// start single conversion
// write '1' to ADSC
ADCSRA |= (1<<ADSC);
// wait for conversion to complete
// ADSC becomes '0' again
// till then, run loop continuously
while(ADCSRA & (1<<ADSC));
return (ADC);
}









دیدگاه