اطلاعیه

Collapse
No announcement yet.

انتخاب BAUD مناسب در css

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتخاب BAUD مناسب در css

    سلام عرض میکنم
    چند تا سوال دارم : : cool: RS232
    1- دوستان برای انتخاب باود مناسب در CCS از چه فرمول یا قانوننی استفاده می شود که کمترین درصد خطا رو داشته باشه ؟
    2- یه سوال دیگه این که چندتا دستور هست که برای کار با سریال RS232 هست نوشته یک کارکتر رو دریافت کنه از ورودی و ..... من می خوام یه بایت داده که کارکتر نیست رو برای میکرو ارسال کنم این کار با چه دستوری مقدوره؟
    3- این STREAM=id رو به جاب id چی باید گذاشت مثلا می خوام با کامپیوتر ارتباط برقرار کنم
    در ضمن دوستان اگه مطلبی یا نکته منبعی در رابطه با ارتباط سریال RS232 دارن لطف کنن معرفی کنن .....
    با تشکر
    :read:



    #2
    پاسخ : انتخاب BAUD مناسب در css

    1- عموما baudrate را در همان دستور use rs232 انتخاب کنید به صورت نسبتا دقیقی تولید می شود و جای نگرانی نیست
    2- با همان دستورات شما می توانید یک بایت را نیز ارسال کنید
    3- عبارت stream در پیکربندی پورت سریال یک بخش اختیاری است و برای ایجاد وجه تمایز بین پیکربنید های متفاوت می باشد . به طور مثال شما میخواهید که دو نوع ارتباط سریال متفاوت در پروژه خود داشته باشید .یکی بر روی پین های ra1 , ra0 و دیگری بر روی پین های rb5,rb4 . در برنامه نویسی ccs شما باید به نوعی بین این دو کانکشن تفاوت ایجاد کنید تا برای استفاده از دستورات getc و putc و.. به مشکلی بر نخورید . این تفاوت توسط عبارت stream تعیین می شود :
    کد:
    #use rs232(baud=9600, xmit=PIN_A0,rcv=PIN_A1,stream=uart1)
    #use rs232(baud=9600, xmit=PIN_B4,rcv=PIN_B5,stream=uart2)
    حال اگر خواسته باشم که توسط کانکشن uart1 یک کاراکتر را ارسال کنم به این شکل عمل میکنم :
    کد:
    fputc(44,uart1);
    (دستور فوق مقدار عددی 44 را توسط ارتباط سریال پین های ra1,ra0 ارسال میکند .)
    و برای دریافت از کانکشن uart2 نیز به این شکل مینویسم :
    کد:
    k=fgetc(uart2);

    دیدگاه


      #3
      پاسخ : انتخاب BAUD مناسب در css

      سلام مجدد
      دوست عزیز پاسخ شما بسیار کامل بود ولی امشب هر کاری کردم نتونستم جواب بگیرم شاید مشکل از هایپر ترمینال باشه ......
      یه خواهش : میشه یه برنامه خیلی ساده :redface: که میکرو یه عددی رو میفرسته به سریال کامپیوتر و نمایش روی مانیتور کامپیوتر از طریق سریال رو ..... من از میکرو PIC 16F877A و فرکانس MH 4 استفاده می کنم

      دیدگاه


        #4
        پاسخ : انتخاب BAUD مناسب در css

        #include <16F877A.h>
        #device adc=8

        #FUSES NOWDT //No Watch Dog Timer
        #FUSES XT //Crystal osc <= 4mhz
        #FUSES NOPUT //No Power Up Timer
        #FUSES NOPROTECT //Code not protected from reading
        #FUSES NODEBUG //No Debug mode for ICD
        #FUSES NOBROWNOUT //No brownout reset
        #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
        #FUSES NOCPD //No EE protection
        #FUSES WRT_50% //Lower half of Program Memory is Write Protected

        #use delay(clock=4000000,RESTART_WDT)
        #use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

        void main()
        {
        char g[6]={"Hello"};
        setup_adc_ports(NO_ANALOGS);
        setup_adc(ADC_OFF);
        setup_psp(PSP_DISABLED);
        setup_spi(SPI_SS_DISABLED);
        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
        setup_timer_1(T1_DISABLED);
        setup_timer_2(T2_DISABLED,0,1);
        setup_comparator(NC_NC_NC_NC);
        setup_vref(FALSE);

        while(true){
        printf("%s",g);
        delay_ms(600);
        }

        }

        دیدگاه


          #5
          پاسخ : انتخاب BAUD مناسب در css

          جوااااب داد ...................... :wow: :wow:

          دیدگاه


            #6
            پاسخ : انتخاب BAUD مناسب در css

            نوشته اصلی توسط محمد ایجی
            #include <16F877A.h>
            #device adc=8

            #FUSES NOWDT //No Watch Dog Timer
            #FUSES XT //Crystal osc <= 4mhz
            #FUSES NOPUT //No Power Up Timer
            #FUSES NOPROTECT //Code not protected from reading
            #FUSES NODEBUG //No Debug mode for ICD
            #FUSES NOBROWNOUT //No brownout reset
            #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
            #FUSES NOCPD //No EE protection
            #FUSES WRT_50% //Lower half of Program Memory is Write Protected

            #use delay(clock=4000000,RESTART_WDT)
            #use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

            void main()
            {
            char g[6]={"Hello"};
            setup_adc_ports(NO_ANALOGS);
            setup_adc(ADC_OFF);
            setup_psp(PSP_DISABLED);
            setup_spi(SPI_SS_DISABLED);
            setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
            setup_timer_1(T1_DISABLED);
            setup_timer_2(T2_DISABLED,0,1);
            setup_comparator(NC_NC_NC_NC);
            setup_vref(FALSE);

            while(true){
            printf("%s",g);
            delay_ms(600);
            }

            }
            من هر کاری میکنم نمیتونم نمیتونم به pc ارسال کنم .دریافت میکنم ولی ارسال نمیشه

            دیدگاه


              #7
              پاسخ : انتخاب BAUD مناسب در css

              نوشته اصلی توسط ali fard
              من هر کاری میکنم نمیتونم نمیتونم به pc ارسال کنم .دریافت میکنم ولی ارسال نمیشه
              دقیقا منم همین مشکلو دارم از pc ارسال میکنم ولی از میکرو نمیشه توی پروتوس مشکلی نیست

              دیدگاه


                #8
                پاسخ : انتخاب BAUD مناسب در css

                9600 گزینه خوبیه بقیه هم هیچ مشکلی ندارن
                فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
                گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

                دیدگاه

                لطفا صبر کنید...
                X