با سلام خدمت دوستان گرامی .
من میخواهم از یک پالس 10 تا نمونه یا بیشتر بردارم , در وا قع از خروجی اشمیت تریگر میخواهم نمونه بردارم تا بتونم شکل خروجی این مدار را در کامپیوتر باز سازی کنم .لطفا بچه ها هر کی میتونه کمک کنه برای پروژه کار شناسی لازم دارم و خیلی هم فوری.
من خودم هم با codvision هم با bascom کار کردم ولی نتایج مشابه گرفتم. نتیجه این بود که با تاخیر قابل قبولی شروع به نمونه برداری کردم ودر یک ارایه ریختم بعد که روی lcd نمایش میدهم اعداد یک در میان 0 و 1023 میشوند در صورتی که باید پنج تا 1023 پشت یرهم باشند .(چون پالس است ) در زیر برنامه را میگزارم.
البته در این جا چندتا بیشتر نمونه بر نداشتم همین ها هم جواب نمیدن.در ضمن در اینجا فرکانس پالس 2k است و تاخیر را هم چون 10 تا نمونه برداشتم 100u در نظر گرفتم (با تاخیر های دیگه هم کار کردم)
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;
}
char buffer[4];
float volt[5];
unsigned int i;
void main(void)
{
lcd_init(16);
lcd_clear();
for(i=0;i<10;i++){
volt[i]=read_adc(0)*5/1023;
delay_us(100);
}
sprintf(buffer,"a=%f",volt[0]);
lcd_clear();
lcd_puts(buffer);
delay_ms(500);
lcd_clear();
sprintf(buffer,"b=%f",volt[1]);
lcd_puts(buffer);
delay_ms(500);
lcd_clear();
sprintf(buffer,"c=%d",volt[3]);
lcd_puts(buffer);
delay_ms(500);}
پیشاپیش ممنون.
من میخواهم از یک پالس 10 تا نمونه یا بیشتر بردارم , در وا قع از خروجی اشمیت تریگر میخواهم نمونه بردارم تا بتونم شکل خروجی این مدار را در کامپیوتر باز سازی کنم .لطفا بچه ها هر کی میتونه کمک کنه برای پروژه کار شناسی لازم دارم و خیلی هم فوری.
من خودم هم با codvision هم با bascom کار کردم ولی نتایج مشابه گرفتم. نتیجه این بود که با تاخیر قابل قبولی شروع به نمونه برداری کردم ودر یک ارایه ریختم بعد که روی lcd نمایش میدهم اعداد یک در میان 0 و 1023 میشوند در صورتی که باید پنج تا 1023 پشت یرهم باشند .(چون پالس است ) در زیر برنامه را میگزارم.
البته در این جا چندتا بیشتر نمونه بر نداشتم همین ها هم جواب نمیدن.در ضمن در اینجا فرکانس پالس 2k است و تاخیر را هم چون 10 تا نمونه برداشتم 100u در نظر گرفتم (با تاخیر های دیگه هم کار کردم)
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;
}
char buffer[4];
float volt[5];
unsigned int i;
void main(void)
{
lcd_init(16);
lcd_clear();
for(i=0;i<10;i++){
volt[i]=read_adc(0)*5/1023;
delay_us(100);
}
sprintf(buffer,"a=%f",volt[0]);
lcd_clear();
lcd_puts(buffer);
delay_ms(500);
lcd_clear();
sprintf(buffer,"b=%f",volt[1]);
lcd_puts(buffer);
delay_ms(500);
lcd_clear();
sprintf(buffer,"c=%d",volt[3]);
lcd_puts(buffer);
delay_ms(500);}
پیشاپیش ممنون.


دیدگاه