پاسخ : پاسخ : آیا با avr میتوان از یه موج الکتیکی انتگر
باسلام
روش خوبی برای دسترسی سریع به ریجسترها بود من خیلی خوشم آمد میخواستم ببینم برای بقیه ریجسترها هم با این روش رفرنسی سراغ دارید بازهم تشکر میکنم
نوشته اصلی توسط tohid041
خودم تا حالا ازش استفاده نکردم :mrgreen:
برای را ه اندازی خودکار مبدل استفاده میشه
اینا رجیستر های adc هست ، توضیحاتشونو بخون شاید بدردت خورد
اینا هم مد های راه اندازی خودکارشن :
برای را ه اندازی خودکار مبدل استفاده میشه
اینا رجیستر های adc هست ، توضیحاتشونو بخون شاید بدردت خورد
کد:
/** * registers : * * ADCSRA : ADC control and status register * /-------+-------\ * 7 6 5 4 3 2 1 0 * ^ ^ ^ ^ ^ \-+-/ * | | | | | +----- ADPS2,1,0 : ADC prescaler select * | | | | +--------- ADIE : ADC interrupt enable * | | | +------------- ADIF : ADC interrupt flag * | | +--------------- m32,m16=ADATE : ADC auto trigger enable - m8=ADFR : ADC free runing * | +----------------- ADSC : ADC start conversion * +------------------- ADEN : ADC enable * * ADMUX : ADC multiplexer selection register * /-------+-------\ * 7 6 5 4 3 2 1 0 * \+/ ^ \----+----/ * | | +-------- MUX4,3,2,1,0 : analog channel and gain selection * | +--------------- ADLAR : left adjust result * +------------------ REFS1,0 : reference selection * * SFIOR : special function IO register * /-------+-------\ * 7 6 5 4 3 2 1 0 * \-+-/ ^ ^ ^ ^ ^ * | | | | | +--- PSR10 : prescaler reset timer/counter1&0 * | | | | +----- PSR2 : prescaler Reset timer/counter2 * | | | +------- PUD : pull-up disable * | | +--------- ACME : analog comparator multiplexer enable * | +------------- m8=ADHSM : ADC high speed mode * +----------------- ADTS2,1,0 : ADC auto trigger source * * ADCW=ADCH,ADCL : ADC data registers */
کد:
#define ADC_FREE_RUN (0<<ADTS2|0<<ADTS1|0<<ADTS0)<<16 /* free running */ #define ADC_TRIGGER_ACMP (0<<ADTS2|0<<ADTS1|1<<ADTS0)<<16 /* analog comparator */ #define ADC_TRIGGER_IRQ0 (0<<ADTS2|1<<ADTS1|0<<ADTS0)<<16 /* external IRQ0 */ #define ADC_TRIGGER_TIMER0_CMP (0<<ADTS2|1<<ADTS1|1<<ADTS0)<<16 /* timer/counter0 compare match */ #define ADC_TRIGGER_TIMER0_OVF (1<<ADTS2|0<<ADTS1|0<<ADTS0)<<16 /* timer/counter0 overflow */ #define ADC_TRIGGER_TIMER1_CMPB (1<<ADTS2|0<<ADTS1|1<<ADTS0)<<16 /* timer/counter1 compare match B */ #define ADC_TRIGGER_TIMER1_OVF (1<<ADTS2|1<<ADTS1|0<<ADTS0)<<16 /* timer/counter1 overflow */ #define ADC_TRIGGER_TIMER1_CAPT (1<<ADTS2|1<<ADTS1|1<<ADTS0)<<16 /* timer/counter1 capture event */
روش خوبی برای دسترسی سریع به ریجسترها بود من خیلی خوشم آمد میخواستم ببینم برای بقیه ریجسترها هم با این روش رفرنسی سراغ دارید بازهم تشکر میکنم
دیدگاه