با سلام و خسته نباشی خدمت دوستان عزیز
همانطور که از موضوع پیداست میکرو atmega 16 دارم.
میخوام از 3 تا ADC استفاده کنم تا مقداری رو از usart به terminal نرم افزار code vision ببره اما مشکل اینجاست که وقتی از 3 تا استفاده میکنم نویز وحشتناکی توی adc می افته
اول از یکی استفاده کردم مشکلی نداشت بعد دوتا استفاده کردم مشکل به هم زد از code wizard مقدار کلاک adc رو روی 125/000 khz گذاشتم usart رو هم روی data 8 stop 1 parity : even تنظیم کردم مشکل رفع شد (90%)
اما حالا که از 3 تا استفاده میکنم همه چیز به هم میریزه
آیا باید از یک میکرو قویتر استفاده کنم ؟ مدار هم سالمه همه جاشو تست کردم نویز از مدار نیست
همانطور که از موضوع پیداست میکرو atmega 16 دارم.
میخوام از 3 تا ADC استفاده کنم تا مقداری رو از usart به terminal نرم افزار code vision ببره اما مشکل اینجاست که وقتی از 3 تا استفاده میکنم نویز وحشتناکی توی adc می افته
اول از یکی استفاده کردم مشکلی نداشت بعد دوتا استفاده کردم مشکل به هم زد از code wizard مقدار کلاک adc رو روی 125/000 khz گذاشتم usart رو هم روی data 8 stop 1 parity : even تنظیم کردم مشکل رفع شد (90%)
اما حالا که از 3 تا استفاده میکنم همه چیز به هم میریزه
کد:
while (1) { adc0=readAdc(0); delay_ms(50); adc1=readAdc(1); delay_ms(50); adc2=readAdc(2); delay_ms(50); if(i<5) { a[i]=adc0; b[i]=adc1; n[i]=adc2; i++; } else { i=0; //knob1 printf(" knob1= "); for(j=0;j<5;j++) { printf("%d",a[j]); printf("-"); } printf(" "); delay_ms(1000); //knob2 printf(" knob2= "); for(j=0;j<5;j++) { printf("%d",b[j]); printf("-"); } printf(" "); delay_ms(1000); //konb3 printf(" knob3= "); for(j=0;j<5;j++) { printf("%d",n[j]); printf("-"); } printf(" "); delay_ms(1000); } } } int readAdc(int anyAdc) { int x; float y; y=read_adc(anyAdc); x=(y/1023)*127; return x; }
دیدگاه