سلام دوستان
من واسه استفاده از ADC کد زیر رو استفاده میکنم :
کد:
#include <AT91SAM7X256.h>
#include <stdio.h>
#include <delay.h>
#include <adc.h>
#define LCD_PORT_B
#define LCD_RS 8
#define LCD_E 10
#define LCD_DB4 12
#define LCD_DB5 13
#define LCD_DB6 14
#define LCD_DB7 15
#include <lcd.h>
int main (void){
float a , b;
char lcd_buffer[10];
config_adc( 0xc0);
lcd_init();
while(1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf( "adc=");
start_adc();
a = read_adc(6);
a=(a*3.3)/1023;
b = read_adc(7);
b=(b*3.3)/1023;
lcd_gotoxy(2,1);
sprintf(lcd_buffer,"a=%4.3f b=%4.3f",a,b);
lcd_putsf(lcd_buffer);
delay_ms(200);
}}
وقتی ولتاژ هیچ کدوم از پورت های ADC بیشتر از 3.3 نیست همه چیز خوب کار میکنه ولی موقعی که به پورت 7 ولتاژ 5 ولت میدم مقدار خروجی ADC نه تنها واسه پورت 7 بلکه واسه پورت 6 هم 1023 میشه (فارغ از اینکه مقدار ولتاژ اعمالی به پورت 6 چیه )
جالب اینجاست که حتی اگه به پرت 4 ADC که اصلا تو برنامه کاری باهاش نداشتم هم 5 ولت اعمال کنم باز هم این اتفاق میافته...
کسی از دوستان میتونه بگه ایراد کار از کجاست؟