عزیزان خسته نباشید
خواهشا یه راهنمایی بفرمایید دستورات پایین را از کدویژن گرفتم ولی مقدار را صفرنمایش میده.اشکالم اینه : شماره کانال خواندن adc را کجا بنویسم ؟
روی این تصویر هم نفهمیدم چطوری باید شماره کانال را وارد کنم .ممنون از همگی

temp = adc_data(1);//باز هم مقدار صفر نمایش میده
خواهشا یه راهنمایی بفرمایید دستورات پایین را از کدویژن گرفتم ولی مقدار را صفرنمایش میده.اشکالم اینه : شماره کانال خواندن adc را کجا بنویسم ؟
روی این تصویر هم نفهمیدم چطوری باید شماره کانال را وارد کنم .ممنون از همگی

کد:
کد:
#include <mega8.h> #include <delay.h> unsigned char adc_data; #define ADC_VREF_TYPE 0x20 // ADC interrupt service routine interrupt [ADC_INT] void adc_isr(void) { // Read the 8 most significant bits // of the AD conversion result adc_data=ADCH; } // Read the 8 most significant bits // of the AD conversion result // with noise canceling unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); #asm in r30,mcucr cbr r30,__sm_mask sbr r30,__se_bit | __sm_adc_noise_red out mcucr,r30 sleep cbr r30,__se_bit out mcucr,r30 #endasm return adc_data; } // Declare your global variables here void main(void) { DDRC.1=0X00; PORTC.1=0X00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 125.000 kHz // ADC Voltage Reference: AREF pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x8E; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts #asm("sei") while (1) { // Place your code here [COLOR=#ff0000] [SIZE=2] temp = read_adc(1)[/SIZE];//مقدار صفر نمایش میده [/COLOR] } }
دیدگاه