با سلام
من قصد دارم یک رطوبت سنج با ATMEGA32بسازم واز یک RS232 هم برای ارتباط با کامپیوتر استفاده کنم مدار ان را بستم و برنامه ای طبق زیر نوشتم .ارتباط با کامپیوتر ان درست برقرار می شه.ولی هر ولتاژی یا سنسوری به سر پورت A وصل می کنم خروجی صفر رو نشون می ده نمی دونم مشکلش چیه؟؟؟
ممنون می شم اگه راهنمایی کنید. :angry: :angry: :angry: :angry:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#define xtal 8000000
// Alphanumeric LCD Module functions
#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
int adc_in;
float temp;
PORTA=0x00;
DDRA=0x00;
// ADC initialization
// ADC Clock frequency: 45 kHz
// ADC Voltage Reference: Int., cap. on AREF
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x06;
while (1)
{
adc_in=read_adc(0);
temp=adc_in/4;
printf("temp= %d",temp);
delay_ms(1000);
};
}
:cry2:
من قصد دارم یک رطوبت سنج با ATMEGA32بسازم واز یک RS232 هم برای ارتباط با کامپیوتر استفاده کنم مدار ان را بستم و برنامه ای طبق زیر نوشتم .ارتباط با کامپیوتر ان درست برقرار می شه.ولی هر ولتاژی یا سنسوری به سر پورت A وصل می کنم خروجی صفر رو نشون می ده نمی دونم مشکلش چیه؟؟؟
ممنون می شم اگه راهنمایی کنید. :angry: :angry: :angry: :angry:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#define xtal 8000000
// Alphanumeric LCD Module functions
#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
int adc_in;
float temp;
PORTA=0x00;
DDRA=0x00;
// ADC initialization
// ADC Clock frequency: 45 kHz
// ADC Voltage Reference: Int., cap. on AREF
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x06;
while (1)
{
adc_in=read_adc(0);
temp=adc_in/4;
printf("temp= %d",temp);
delay_ms(1000);
};
}
:cry2:
دیدگاه