NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4094 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 28

موضوع: ارتباط میکرو AVR با نرم افزار lab view

  1. #1
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض ارتباط میکرو AVR با نرم افزار lab view

    سلام دوستان کسی میتونه منو تو ارتباط دهی میکرو با نرم افزار labview راهنمایی کنه؟
    مداری برای اتصالش هست؟ اگه کامل توضیح بدید ممنون میشم.

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

  3. #2
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohamad_musav نمایش پست ها
    سلام دوستان کسی میتونه منو تو ارتباط دهی میکرو با نرم افزار labview راهنمایی کنه؟
    مداری برای اتصالش هست؟ اگه کامل توضیح بدید ممنون میشم.
    سلام مهندس
    در مورد اين موضوع مفصلا بحث شده.
    اگه تو انجمنو سرچ ميكردين ميتونستين اين تاپيك رو پيدا كنيد:
    labview و avr - ایـــــــــران میـــــــکرو ™
    _____________________________________
    _____________________________________

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

    KHM

  5. #3
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    سلام
    دوست عزیز من انجمن ها رو سر زدم اما چیز زیادی دستگیرم نشد.
    من فقط بتونم تنظیمات میکرو رو درست کنم labview رو استادمون گفت من برات درستش می کنم. سوالم اینه که برای اتصال میکرو به labview احتیاج به مداری هست؟ اگه کسی میدونه لطفا کامل راهنمایی کنه. ممنون

  6. #4
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    اگه میکروتون AVR هست و یا در این رده برای ارتباط به کامپیوتر مجبوری از ارتباط سریال استفاده کنی و چون باید از پورت کام استفاده کنی و اونهم ولتاژ از نوع Cmos هست نمی شه و باید از یه ای سی max232 استفاده کنی نقشه مداری شو پیدا میکنم میزارم واسه تون خیلی اسونه

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


  8. #5
    ناظم سایت KHM آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    1,047
    تشکر
    2,895
    تشکر شده 2,131 بار در 905 پست

    پیش فرض

    بله احتیاج به مدار هست ولی مدار خیلی ساده...
    راحت ترینش استفاده از max232 هست...
    دمبال شماتیک max232 بگرد..یام دیتاشیت..همه جا هست..همونو ببند و وصل کن به میکرو..

  9. #6
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    دوست عزیز خدمت شما
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: max232.gif
مشاهده: 38
حجم: 6.3 کیلو بایت  

  10. کاربران : 2 تشکر کرده اند از شما Ma3ood برای ارسال این پست سودمند:


  11. #7
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    سلام
    ممنون از راهنمایی های مفیدتون.
    برای ارتباط سریال میکرو با برنامه labview در قسمت USART برنامه code wizard AVR میکرو را در حالت فرستنده و دریافت کننده قرار دهم و وقفه ی قسمت دریافت کننده را فعال کرده و ظرفیت بافر گیرنده را چه مقداری قرار دهم.
    نرخ ارسال برابر 9600 باشد؟communication parameters را در چه فرمتهایی قرار دهم همان فرمت پیش فرض: 8data,1 stop, no parity ؟
    قسمت mode را نیز بر روی چه حالت هایی قرار دهم بهتر است؟
    از شما دوستای گران قدر و عزیز خواهشمندم در صورت امکان راهنمایی های ارزشمندتان را بفرمایید.
    ویرایش توسط mohamad_musav : 22-08-2012 در ساعت 14:21

  12. #8
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    خوب در تنظیم کد ویزارد به صورت شکل زیر قرار بده جواب میگیری تنظیمات communication parameters و mode را تغییر نده

    در مورد بافر هم میتونی بسته با اطلاعاتت زیاد و کم کنی مثلا 20 قرار بدی

  13. کاربران : 2 تشکر کرده اند از شما Ma3ood برای ارسال این پست سودمند:


  14. #9
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    ممهونم از شما دوستان عزیز
    خیلی راهنماییتون برام مفید بود. تشکر

  15. #10
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    سلام
    من تونستم طریقه ارتباط سریال میکرو رو بدونم و فقط مونده که چطور مقدار فرکانس ها رو به پایه TXD انتقال بدم و همینطور دستوره labview رو به RXD بفرستم.
    کجا و چیو باید من printf کنم نمی دونم؟ برای گیرندگی میکرو در روتین اینتراپت CodeVision باید چیکار کنم که فقط زمانی که داده از Labview آمد دیتای موجود در UDR را بخوانه؟
    برای ارسال مقدار فرکانس ها از تابع ( )printf و برای دریافت دستور یا داده از labview از تابع ( )getchar استفاده کنم؟
    ویرایش توسط mohamad_musav : 24-08-2012 در ساعت 00:23

  16. #11
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mohamad_musav نمایش پست ها
    سلام
    من تونستم طریقه ارتباط سریال میکرو رو بدونم و فقط مونده که چطور مقدار فرکانس ها رو به پایه TXD انتقال بدم و همینطور دستوره labview رو به RXD بفرستم.
    کجا و چیو باید من printf کنم نمی دونم؟ برای گیرندگی میکرو در روتین اینتراپت CodeVision باید چیکار کنم که فقط زمانی که داده از Labview آمد دیتای موجود در UDR را بخوانه؟
    برای ارسال مقدار فرکانس ها از تابع ( )printf و برای دریافت دستور یا داده از labview از تابع ( )getchar استفاده کنم؟
    یه خورده گیج شدین فکر کنم
    ببیند برای ازسال مثلا یه کاراکتر از دستور putxchar() استفاده میکنی و حالا توی روتین وقفه زمانی فعال میشه که دیتایی به پایه RXD بیاد و مقدارش در بافر UDR قرار میگیره حالا میتونی مقدار UDR را بخونی و یا توی سرویس وقفه از دستور getchar برای دریافت یک کاراکتر استفاده کنی زیاد سخت نیست شما نمونه برنامه ای داری روش کار میکنی را قرار بده اگه بتونم حتما کمکتون میکنم
    دستور های دیگه و با کابرد های دیگه هم هست
    مثل
    gets
    sprint
    print
    scanf
    و غیره بهتره یه مطالعه از روی کتابی بکنی

  17. #12
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    درود دوست عزیز شما دستور زیر را این طوری قرار بده
    کد:
    .
    .
    .
    .
    if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3)) 
            { 
              PORTC.0=0; 
            } 
           else 
               { 
                 PORTC.0=1; 
               } 
       printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
    delay_ms(1000);
    }
    .
    .
    .
    این دستور هر 1 ثانیه مقادیر 3 فرکانس را با هم ارسال میکنه مثلا باید اینطوری دریافت کنی
    f1:12,f2:20,f:30

  18. #13
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    سلام
    اینطوری هم میشه؟ بنویسم؟
    [PHP]
    while (1)
    {
    #asm("cli")
    pulse1=0;
    pulse2=0;
    pulse3=0;
    #asm("sei")
    delay_ms(100);
    final_pulse1=pulse1;
    final_pulse2=pulse2;
    final_pulse3=pulse3;
    if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
    {
    PORTC.0=0;
    printf ( "final_pulse1" );
    printf ( "final_pulse2" );
    printf ( "final_pulse3" );
    }
    else
    {
    PORTC.0=1;
    printf ( "final_pulse1" );
    printf ( "final_pulse2" );
    printf ( "final_pulse3" );
    }

    }
    [/PHP]

  19. #14
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نه اینجووری فقطط نوشته ارسال میشه اینطوری بنویس
    کد:
    while (1)
          {
            #asm("cli")
           pulse1=0;
           pulse2=0;
           pulse3=0;
           #asm("sei")
           delay_ms(100);
           final_pulse1=pulse1;
           final_pulse2=pulse2;
           final_pulse3=pulse3;
           if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
            {
              PORTC.0=0;
              printf ( "final_pulse1:%d",final_pulse1 );
              printf ( "final_pulse2:%d",final_pulse2 );
              printf ( "final_pulse3:%d",final_pulse3 );
            }
           else
               {
                 PORTC.0=1;
                 printf ( "final_pulse1:%d" ,final_pulse1);
                 printf ( "final_pulse2:%d" ,final_pulse2);
                 printf ( "final_pulse3:%d",final_pulse3 );
               }  
               
          }

  20. #15
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    البته یادم رفت بگم برای ارسال هر عدد یه مدت delay هم قرار بده مثل مقدار اول را که ارسال کرد مقدار دوم را مثلا 100 میلی ثانیه بعدش بفرسته و همین طور ......

  21. #16
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    اگه delay بزارم تو نمایش لب ویو مشکلی پیش نمیاد؟
    اونجا میخواد همه رو باهم نمایش بده

  22. #17
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    اینطوری؟
    [PHP]
    if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
    {
    PORTC.0=0;
    printf ( "final_pulse1:%d" ,final_pulse1);
    delay_ms(100);
    printf ( "final_pulse2:%d" ,final_pulse2);
    delay_ms(100);
    printf ( "final_pulse3:%d",final_pulse3 );
    delay_ms(100);
    }
    else
    {
    PORTC.0=1;
    printf ( "final_pulse1:%d" ,final_pulse1);
    delay_ms(100);
    printf ( "final_pulse2:%d" ,final_pulse2);
    delay_ms(100);
    printf ( "final_pulse3:%d",final_pulse3 );
    delay_ms(100);
    }

    }
    [/PHP]

  23. #18
    ناظم انجمن Ma3ood آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    مسعود
    نوشته ها
    2,248
    تشکر
    1,912
    تشکر شده 3,087 بار در 1,509 پست

    پیش فرض

    نه برای این گفتم که دادها به هم نریزه برای سرعت بالا
    در کل این زمان را باید کم یا زیاد کنی تا بهترین حالتت به دست بیاد

  24. #19
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    تو این یکی مدت delay کم بشه که طوری نیست؟
    هر 100میای ثانیه مقادیرو بفرسته.
    [PHP]
    if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
    {
    PORTC.0=0;
    printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
    delay_ms(100);
    }
    else
    {
    PORTC.0=1;
    printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
    delay_ms(100);
    [/PHP]

  25. #20
    کاربر فعال mohamad_musav آواتار ها
    تاریخ عضویت
    Aug 2012
    نام
    سید محمد موسوی
    نوشته ها
    189
    تشکر
    61
    تشکر شده 39 بار در 29 پست

    پیش فرض

    ممنونم از راهنمایی بسیار خوبت
    من برای پیدا کردن زمان مناسب باید با لب ویو تست کنم؟

صفحه 1 از 2 12 آخرینآخرین

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

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