NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4221 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 13 از 13

موضوع: تبدیل سیگنال آنالوگ به دیجیتال به صورت پیوسته

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض تبدیل سیگنال آنالوگ به دیجیتال به صورت پیوسته

    با سلام به همه دوستان
    من میخوام یه سری سیگنال آنالوگ رو به صورت پیوسته به دیجیتال تبدیل کنم
    میخوام بدونم که این اطلاعات دیجیتال شده در چه رجیستری ذخیره میشن؟؟؟
    این رجیستر چه حجمی از این اطلاعات رو میتونه تو خودش ذخیره کنه؟؟؟
    و چطور میشه این ریجیستر رو فراخوانی کرد و اطلاعات توش رو به sd card منتقل کرد؟؟؟

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال
    تاریخ عضویت
    Nov 2009
    نوشته ها
    115
    تشکر
    77
    تشکر شده 83 بار در 35 پست

    پیش فرض

    اگه اتمل بودي بلد بودم
    اما الان شرمنده
    ویرایش توسط m_online3710 : 08-11-2012 در ساعت 16:08

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    اگه کسی یا سایتی رو میشناسید که میتونه کمکی کنه لطفا معرفی کنید

  5. #4
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    اینکه به صورت پیوسته یه سیگنال را می خواهید تبدیل کنید باید از مد burst استفاده کنید و برای ذخیره هم قائدتا میریزند در یک آرایه و اینکه چه حجمی از این اطلاعات رو میتونه تو خودش ذخیره کنه، خوب بستگی به این داره چی تعریفش بکنید.

  6. تشکرها از این نوشته :


  7. #5
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    نقل قول نوشته اصلی توسط a.moghadam نمایش پست ها
    با سلام به همه دوستان
    من میخوام یه سری سیگنال آنالوگ رو به صورت پیوسته به دیجیتال تبدیل کنم
    میخوام بدونم که این اطلاعات دیجیتال شده در چه رجیستری ذخیره میشن؟؟؟
    این رجیستر چه حجمی از این اطلاعات رو میتونه تو خودش ذخیره کنه؟؟؟
    و چطور میشه این ریجیستر رو فراخوانی کرد و اطلاعات توش رو به sd card منتقل کرد؟؟؟
    جواب دو تا سوالت توی منوال میکرو به وضوح هست. یه سر منوال میکروت رو نگاه کن ببین اسمش چیه. اسمش توی میکروهای مختلف ممکنه کمی فرق کنه. رزولوشن مبدل رو هم ببین بعد متوجه میشی چه حجمی میشه. برای مشخص شدن اینها باید اسم میکروت رو بگی.

    بحث SD card هم که کلا یه بحث جداگانه است که پروژه های آماده اش برای دانلود موجوده.
    ما در انتظار رویت خورشیدیم ...

    اللهم عجل لولیک الفرج

  8. تشکرها از این نوشته :


  9. #6
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    ممنون از آقایان زرکوب و آقایی فر که جواب دادن
    من از میکروی lpc1768 استفاده میکنم
    منظورتون از اینکه گفتید بستگی به این داره که چطور تعریفش کنیم اینه که فرضا 16بیتی یا 32بیتی آرایه تعریف شه؟؟؟
    تا اونجایی که من متوجه شدم رجیستر adc channel data register اطلاعات دیجیتال شده رو در خودش ذخیره میکنه
    حالا میخوام بدونم با هر بار پر شدن این رجیستر چطور میشه اون رو مدام رو sd ریخت؟؟
    البته من از دستورات cmsis استفاده میکنم
    این رزولوشن مبدل چیه؟

    لطفا یه نگاه هم به این کد برنامه که نوشتم بندازید از خط while ارور میگیره

    int ADCValue;
    float i;
    int main(void)
    {
    PINSEL_CFG_Type Pincfg;
    Pincfg.Portnum=1;
    Pincfg.Pinnum=30;
    Pincfg.Funcnum=2;
    Pincfg.Pinmode=PINSEL_PINMODE_TRISTATE;
    Pincfg.OpenDrain=PINSEL_PINMODE_NORMAL;
    PINSEL_ConfigPin(&Pincfg);
    ADC_Init(LPC_ADC,200000);
    ADC_ChannelCmd(LPC_ADC,ADC_CHANNEL_4,ENABLE);
    ADC_StartCmd(LPC_ADC,ADC_START_NOW);
    ADC_BurstCmd(LPC_ADC,ENABLE);
    }
    while(1)
    {
    ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_4,ADC_DAT A_BURST);
    ADCValue+=ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_4 );
    ACDValue/=i;
    ویرایش توسط a.moghadam : 09-11-2012 در ساعت 11:17

  10. #7
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    آها حالا متوجه منظورتون شدم. دقت در 1768 دوازده بیتی هست یعنی بهتون 0 تا 4095 می دهد. در رجیستر LPC_ADC->ADDR0 تا LPC_ADC->ADDR7 (بستگی به ایکه از کدام کانال استفاده می کنید) مقدار آن قرار دارد. فکر کنم قبلا در این انجمن در مورد جزیییات بیشتر صحبت شده
    هر عددی هم که خوانده شد میریزید در SD card

  11. تشکرها از این نوشته :


  12. #8
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    آها حالا متوجه منظورتون شدم. دقت در 1768 دوازده بیتی هست یعنی بهتون 0 تا 4095 می دهد. در رجیستر LPC_ADC->ADDR0 تا LPC_ADC->ADDR7 (بستگی به ایکه از کدام کانال استفاده می کنید) مقدار آن قرار دارد. فکر کنم قبلا در این انجمن در مورد جزیییات بیشتر صحبت شده
    هر عددی هم که خوانده شد میریزید در SD card
    ممنون از آقای زرکوب
    راستش مطالبی رو که گفتیدو میدونستم
    مشکل اصلی من اینجاست که میخوام بدونم از کجا باید فهمید که رجیستر کی سر ریز میکنه ؟؟
    وآیا مستقیم میشه اطلاعات موجود در رجیستر رو ریخت رو sd??? اگه میشه چطوری؟؟؟
    اگه یه نمونه کد بذارید ممنون میشم
    یه سوال دیگه:
    برای ارسال این اطلاعات به sd از تابع SD_Send_DataBlock استفاده کرد؟؟؟میشه درباره پارامترهای این تابع هم توضیح بدید؟؟؟
    ویرایش توسط a.moghadam : 09-11-2012 در ساعت 23:39

  13. #9

  14. تشکرها از این نوشته :


  15. #10
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    چون میخوام سیگنالها به طور پیوسته و در مدت زمان طولانی تبدیل شن .رجیستری که نتیجه تبدیل توش میره یه زمانی بلخره پر میشه و به قولی سر ریز میشه.
    از کجا بدونم رجیستر(همون رجیستر lpc_ADC0 که گفتید)کی پر میشه؟؟
    چون میخوام به محض پر شدن تو sd بریزمش

  16. #11
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نه آقا درست مطلب را متوجه نشدید. نتیجه یک بار تبدیل آنالوگ به دیجیتال برای کانال 0 ریخته میشه داخل رجیستر LPC_ADC->ADDR0 که تا عمل Done انجام شد، قابل خواندن است. حال شما می توانید عدد داخل این رجیستر را داخل هر جایی یا متغییری قرار دهید. مثلا هر بار که تبدیل انجام شد مقدار خواند شده را داخل sd caed ذخیره کنید(چون طولانیه) یا یک آرایه تعریف کنید هر بار بریزه داخل اون :
    کد:
    int p[1000];
    و در آخر از آن استفاده کنید.
    حالا این که طول این آرایه چقدر می تونه باشه بهش دقت نداشتم تا حالا

  17. تشکرها از این نوشته :


  18. #12
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    نه آقا درست مطلب را متوجه نشدید. نتیجه یک بار تبدیل آنالوگ به دیجیتال برای کانال 0 ریخته میشه داخل رجیستر LPC_ADC->ADDR0 که تا عمل Done انجام شد، قابل خواندن است. حال شما می توانید عدد داخل این رجیستر را داخل هر جایی یا متغییری قرار دهید. مثلا هر بار که تبدیل انجام شد مقدار خواند شده را داخل sd caed ذخیره کنید(چون طولانیه) یا یک آرایه تعریف کنید هر بار بریزه داخل اون :
    کد:
    int p[1000];
    و در آخر از آن استفاده کنید.
    حالا این که طول این آرایه چقدر می تونه باشه بهش دقت نداشتم تا حالا
    آقا مهدی ممنون
    فقط یه سوال میمونه از کجا باید فهمید که بیت Done این رجیستر یک شده و رجیستر قابل خوندن هست؟؟؟

  19. #13
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    24
    تشکر
    19
    تشکر شده 3 بار در 3 پست

    پیش فرض

    تا اونجایی که از یوزر منوال فهمیدم بیتهای 0 تا 3 و 16 تا 29 این رجیستر باید صفر باشن ،بیتهای 4 تا 15 هم مخصوص ذخیره نتایج هستند و بیتهای 30 و 31 هم وقتی تبدیل تمام میشه وبعبارتی رجیستر سرریز میکنه 1 میشن پس باید یه متغییر مثل
    i=0xc000fff0
    تعریف شه که نشون بده رجیستر پر شده
    درست میگم؟
    ویرایش توسط a.moghadam : 10-11-2012 در ساعت 01:42

موضوعات مشابه

  1. پاسخ: 2
    آخرين نوشته: 17-10-2015, 22:19
  2. ساخت فرکانس متر برای سیگنال دیجیتال
    توسط 0121takpa در انجمن میکروکنترلرهای 8و16 بیتی
    پاسخ: 0
    آخرين نوشته: 18-02-2014, 22:42
  3. شبکه کردن چندین کامپوتر بصورت بی سیم
    توسط morteza_rk در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 10
    آخرين نوشته: 16-12-2013, 15:15

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •