۲۷-دى-۱۳۸۶, ۰۱:۵۱:۳۶
۲۷-دى-۱۳۸۶, ۰۹:۴۴:۰۴
مشکل کجاست؟ باید تو ثانیه مثلا 8000 تا نمونه بگیری
۲۷-دى-۱۳۸۶, ۱۵:۱۴:۲۷
تو پروتیوس من یک جوابای نصفه نیمه گرفتم ولی خوب کافی نیست
من فکر میکنم اگه بتونم سیگنال صوت رو به pick to pick 5 ولت برسونم بعد یه offset 2.5 ولت بهش بدم کارم حل بشه
فقط میمونه کارای نمو نه برداری با میکرو
برای تنظیمات code wizard میتونی راهنماییم کنی؟
و سوال دیگه اینکه 8 بیت برا صوت کافیه؟
من فکر میکنم اگه بتونم سیگنال صوت رو به pick to pick 5 ولت برسونم بعد یه offset 2.5 ولت بهش بدم کارم حل بشه
فقط میمونه کارای نمو نه برداری با میکرو
برای تنظیمات code wizard میتونی راهنماییم کنی؟
و سوال دیگه اینکه 8 بیت برا صوت کافیه؟
۲۹-دى-۱۳۸۶, ۰۰:۲۱:۳۳
8 بیت خوبه ولی با adc میکرو در بهترین حالت 4000 sسمپل نموتونی برداری
۲۹-دى-۱۳۸۶, ۰۱:۱۳:۰۱
ممنونم
ببخشید چون من این نمونه برداریو برای ارسال بی سیم با usart میخوام
میتونید در نحوه ی نوشتن برنامه راهنماییم کنید
با code vision
یا علی
ببخشید چون من این نمونه برداریو برای ارسال بی سیم با usart میخوام
میتونید در نحوه ی نوشتن برنامه راهنماییم کنید
با code vision
یا علی
۰۱-بهمن-۱۳۸۶, ۱۵:۵۱:۱۰
:?:
۰۲-بهمن-۱۳۸۶, ۰۸:۵۸:۲۴
نحوه نوشتن برنامه که کار سخت ینیست ولی مشکل اینجاست که این سرعت رو نه پورت سریال به این راحتی ها قبول می کنه نه اون ارسال کننده ای که می خوای بفرستی
برای برنام هم تنها مشکلی که پیش می یاد بهم ریختن سرعت نمونه برداری که اون رو هم توی قسمت گیرنده اگه بافر کنی درست می شه
البته این هم که گفتم بستگی به فرستنده داره اگه اختلاف زمانی برای ارسال هاش نداشته باشه مشکلی نیست
مثلا 8000 تا نمونه می شه 8000*10 بیت سرعت ارسال که می شه 80Kb/s یعنی باید با سرعت بیشتری بفرستی تا داده ها این طرف روی هم جمع نشن
برای برنام هم تنها مشکلی که پیش می یاد بهم ریختن سرعت نمونه برداری که اون رو هم توی قسمت گیرنده اگه بافر کنی درست می شه
البته این هم که گفتم بستگی به فرستنده داره اگه اختلاف زمانی برای ارسال هاش نداشته باشه مشکلی نیست
مثلا 8000 تا نمونه می شه 8000*10 بیت سرعت ارسال که می شه 80Kb/s یعنی باید با سرعت بیشتری بفرستی تا داده ها این طرف روی هم جمع نشن
۰۳-بهمن-۱۳۸۶, ۱۸:۱۳:۲۴
یعنی از نظر شما غیر ممکنه؟
میشه بیشتر توضیح بدید
متشکرم
میشه بیشتر توضیح بدید
متشکرم
۰۴-بهمن-۱۳۸۶, ۰۹:۲۴:۵۵
غیر ممکن که نیست گفتم کار راحتی نیست باید اگه می خوای سریال بفرستی یه فرستنده پیدا کنی که بتونه با این سرعت ارسال کنه همین
توضیح بیشتر هم نمی دونم با کجاش مشکل داری که برات توضیح بدم
توضیح بیشتر هم نمی دونم با کجاش مشکل داری که برات توضیح بدم
۰۵-بهمن-۱۳۸۶, ۰۲:۳۰:۴۷
سلام
ببین دوست من
من نمونه برداریو جواب گرفتم
usart رو هم راه انداختم
ولی نمیدونم این دو تا رو چه جوری به هم لینک کنم
برنامه ای که نوشتم هم اینه
برنامه ADC
#define ADC_VREF_TYPE 0xE0
unsigned char read_adc(unsigned char);
void main(void)
{
unsigned char channel;
DDRC=0xFF;
//DDRC=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
SFIOR=0;
channel=0;
while(1)
{PORTC=read_adc(channel);
};
}
//-----------------------------
unsigned char read_adc(unsigned char channel)
{
ADMUX=channel|ADC_VREF_TYPE;
ADCSRA.6=1;
while(!(ADCSRA.4));
return ADCH;
}
این هم برنامه usart:
unsigned char am,bm,data;
wh ile 1
{
am=read_adc(0);
putchar(am);
data=getchar();
PORTC=data;
};
}
حالا چه جوری اینا رو به بچسبونم
جفتش هم جواب داده
یا علی
ببین دوست من
من نمونه برداریو جواب گرفتم
usart رو هم راه انداختم
ولی نمیدونم این دو تا رو چه جوری به هم لینک کنم
برنامه ای که نوشتم هم اینه
برنامه ADC
#define ADC_VREF_TYPE 0xE0
unsigned char read_adc(unsigned char);
void main(void)
{
unsigned char channel;
DDRC=0xFF;
//DDRC=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
SFIOR=0;
channel=0;
while(1)
{PORTC=read_adc(channel);
};
}
//-----------------------------
unsigned char read_adc(unsigned char channel)
{
ADMUX=channel|ADC_VREF_TYPE;
ADCSRA.6=1;
while(!(ADCSRA.4));
return ADCH;
}
این هم برنامه usart:
unsigned char am,bm,data;
wh ile 1
{
am=read_adc(0);
putchar(am);
data=getchar();
PORTC=data;
};
}
حالا چه جوری اینا رو به بچسبونم
جفتش هم جواب داده
یا علی
۰۷-بهمن-۱۳۸۶, ۱۰:۰۷:۲۴
این مگه کار نمی کنه؟
این هر دوشه دیگه می خونه و می فرسته نمی دونم دقیقا جی رو می خوای؟
البته این کارو اگه با یه تایمر انجام بدی صدای با کیفیت بیشتری رو خواهی داشت
بعنی به جای while این ور توی وقفه یک تایمر بنویس
کد:
while 1
{
am=read_adc(0);
putchar(am);
};
}
البته این کارو اگه با یه تایمر انجام بدی صدای با کیفیت بیشتری رو خواهی داشت
بعنی به جای while این ور توی وقفه یک تایمر بنویس