با درود
من تازه شروع کردم به یادگیری زبان 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); }
دیدگاه