عزیزان خسته نباشید
خواهشا یه راهنمایی بفرمایید دستورات پایین را از کدویژن گرفتم ولی مقدار را صفرنمایش میده.اشکالم اینه : شماره کانال خواندن 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]
}
}






دیدگاه