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
















دیدگاه