اطلاعیه

Collapse
No announcement yet.

چندین عملیات پردازش

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

    #16
    چندین عملیات پردازش

    خیلی ممنون امیر جان.

    آیا دستور pause تاثیر در تایمر دارد ؟

    چه دستوراتی در تایمر و ماژول pwm تاثیر میگذارند؟

    آیا وقفه ها فقط در اول برنامه تعریف میشوند , و نیازی نیست که داخل حلقه قرار بگیرند؟

    با تشکر.
    زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

    دیدگاه


      #17
      چندین عملیات پردازش

      سلام.
      در کامپایلری که من ازش استفاده می کنم ، به جای دستور pause از دستور wait استفاده می کند. در آنجا این دستور روی تایمر هیچ اثری ندارد. احتمال زیاد می دم که دستور pause نیز روی تایمرها اثر ندارند.
      اصلا وقتی تایمرها اثر پذیر می شوند که بیت فعال سازی آن ها یک شود و سپس تایمر شروع به افزایش می کند. خیالتان راحت باشه اکثر دستورات بیسیک روی تایمر اثر ندارند. تو کامپایلری که من استفاده می کنم چنین است. البته یه دستور pwm در بعضی از کامپایلرهای بیسیک میکروهای pic وجود داره که روی تایمر 2 اثر می گذارد. همچنین هروقت که ماژول pwm فعال شد هر گز روی پایه ای که موج مربعی حاصل از pwm را تولید می کند اطلاعاتی ارسال نکنید و آن پایه یاید به عنوان خروجی تعریف شده باشد.
      راه اندازی وقفه ها در داخل برنامه و هرجا که شما نیاز داشتید انجام می شود. حتما نباید اول برنامه باشه. کدهایی که می خواهید پس از وقوع وقفه رخ دهند را بین دو دستور ON INTERRUPT و RESUME باید بنویسید و این مجموعه که سابروتین وقفه نامیده می شود را بعد از دستور END قرار می دهیم.
      ماژول PWM از وقفه استفاده نمی کند. قطعه کد زیر می تونه یک فرم باشه برای کسی که می خواهد در برنامه اش هم موج مربعب PWM داشته باشه ، هم وقفه و هم دستورات دلخواه دیگر ( جای کدهای فعال سازی PWM و INTERRUPT بسته به خواست شماست و حتما نباید بعد از فعال سازی INTERRUP ماژول PWM را فعال ساخت). فقط دقت داشته باشید که PWM را داخل حلقه قرار ندهید. در طول اجرای این برنامه میکرو یک موج مربعی پیوسته تولید می کند و در کنار آن سایر کار ها نیز انجام می شود:
      YOUR CODES
      ....
      ....
      ...
      PWM CODES
      YOUR OTHER CODES
      .....
      ....
      .....
      INTERRUPT CODES
      YOUR OTHER CODES
      ....
      ....
      ...
      END
      ON INTERRUPT
      YOUR INTERRUPT ROUTIN CODES
      RESUME

      دیدگاه


        #18
        چندین عملیات پردازش

        با سلام و تشکر فراوان از a_sourena

        1- امیرجان مثلا یک کدی مثل زیر مینویسیم ::
        loop:
        lcdout $fe,1
        lcdout "- Normal System"
        lcdout $fe,$c0
        lcdout "- Fault : No"
        pause 100
        if enter=1 then
        goto start
        endif
        if voltage=1 then
        goto voltageset1
        endif
        if current=1 then
        goto currentset1
        endif
        if frequency=1 then
        goto frequencyset1
        endif
        if timetrip=1 then
        goto timeset1
        endif
        if up=1 then
        lcdout $fe,1
        lcdout "Please Wait.."
        goto display
        endif
        goto loop
        ----------
        start:
        .....
        goto start
        ---------
        display:
        .....
        goto display

        END

        این برنامه شامل چند زیر روال است , حالا اگر قرار باشد مثلا وقفه pwm را مداوم داشته باشیم باید کجا وقفه را تعریف کنیم؟
        اگر بعد end تعریف کنیم , که برنامه اصلا به آن نمی رسد؟

        پس یعنی باید اول برنامه تعریف کنیم ؟(جای TRIS ها )

        2-حالا مثلا اگر بخواهیم وقفه تغییر وضعیت پورت b را فعال کنیم :
        ON INTERRUPT GOTO ALARM
        INTCON.RBIE =1
        LOOP:
        ...
        ....
        .....
        GOTO LOOP
        ALARM:
        ....
        RESUME
        END
        آیا به این شکل درست است؟
        یعنی اینکه اول وقفه را فعال کنیم , و موقعی که وقفه رخ داد در هر کجا از برنامه داخل LOOP بود, بره به زیر روال وقفه؟

        3-اگر از چند وقفه بخواهیم استفاده کنیم , مثلا وقفهای تایمر 1 و2 وRB0 حالا اگر بخواهیم بگیم که اگر هر وقفه ای رخ داد به زیر روال خاص خودش برود باید چه کار کرد ؟ (چون یک
        ON INTERRUPT
        که بیشتر نداریم)

        4-زمانی مقاومتهای PULL-UP را در پورت B فعال میکنیم با دستور:

        OPTION_REG = 1
        آیا کیبورد را مستقیم میتوانیم به پورت وصل کنیم بدون مقاومت ؟
        و آیا برای وقفه تغییر وضعیت پورت B مشکلی بوجود نمی آید؟

        5-اگر بخواهیم مثلا عدد 1385 را از کیبورد خوانده و داخل یک متغییر بریزیم باید چه کار کنیم؟
        چون در کیبوردهای ماتریسی میشود در هر لحظه یک عدد را خواند (مثلا :1)
        به این شکل چهار عدد 1و3و8و5 را داریم حالا اگر بخواهیم , 1385 را داخل یک متغییر داشته باشیم باید چه کار کنیم ؟


        6-در ضمن در مثالی که در صفحه قبل زحمت کشیدی و گذاشته بودی :
        TRISA = 0
        TRISB = 0
        PR2 = 3
        CCPR1L = %00000010
        TRISC.2 = 0
        T2CON = %00000100
        CCP1CON = %00001100
        loop:
        Toggle PORTB.0
        WaitUs 20
        Goto loop
        End

        pr2 را که شما گفتی یک ریجیستر هشت بیتی است , این ریجیستر را برای چه چیزی مقدار دهی میکنیم.
        آیا فقط برای زمان تناوب است که از فرمولPERIOD = [(PR2) + 1] . 4 . Tosc حساب میشود.

        f=1/period پس از این فرمول مقدار فرکانس مورد نظر بدست می آید.
        اگر طبق این فرمول برای یک فرکانس خاص حساب کردیم مقدار pr2 را , و یک عدد اعشاری شد بعد چی کار میکنیم؟

        بعد چی جوری تعیین کنیم که pwm روی کدام پایه خروجی تولید شود؟
        اگر بخواهیم از هر دو pwm همزمان استفاده کنیم , باید چی کار کنیم؟

        در رابطه با DUTY CYCLE باید چی جوری برای pwm تعریف کنیم ؟
        آیا این وقفه pwm ها را همان اول تعریف کنیم , کافی است و نیازی به تکرار دستورات وقفه نیست ؟

        مقادیر T2CON را شما چگونه بدست آوردی؟
        CCPR1L این ریجیستر از کجا آمده ؟
        CCP1CON این ریجیستر هم از کجا آمده؟
        آیا برنامه داخل LOOP در PWM وTIMER ما نقش دارد , یا که یک برنامه نمونه جداست ؟
        PIC16F877A سه تا وقفه دارد , دوتا 8بیتی و یکدونه 16بیتی؟
        آیا 8بیتی همان تایمر 1 است و 16بیتی همان تایمر دو ؟
        *********ببخشید که سرت را به درد آوردم*********

        با تشکر خیلی فراوان از تو عزیز

        موفق و پیروز باشید.
        زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

        دیدگاه


          #19
          چندین عملیات پردازش

          سلام.
          سوال های مفصلی پرسیدی.
          اول درباره PWM صحبت می کنم و سپس سراغ وقفه می رم.
          اول به شما بگم که PWM هیچ ارتباطی به وقفه نداره. وقفه یه چیزه pwm یه چیزه دیگه. و در یک زمان تنها یکی از دو ماژول PWM کار می کند. اینکه چطور می شه میکرو با استفاده از PWM موج مربعی تولید می کنه به معماری داخلی میکرو مربوط می شه و مفصله. در کامپایلر PICBASIC دستور PWM وجود داره اما این دستور تا آنجا که من اطلاع دارم با ماژول PWM کار نمی کند. یعنی شما با آن دستور می توانید روی PIC16F84 نیز موج مربعی داشته باشید در حالیکه این میکرو اصلا ماژول PWM ندارد. به همین خاطر ممکنه که در حین اجرای برنامه خروجی آن پایه صفر شود و دیگه یه موج مربعی منظم نداشته باشید.این مشکل شما بود برای همین من سعی کردم که درباره ماژول PWM صحبت کنم و نه دستور PWM. بله ممکنه که شما در محاسبه دوره تناوب مورد نظرتان برای PR2 به عدد اعشاری برسید. من یه بار دیگه فرمول دوره تناوب رو می گم:
          (PWM period = [{PR2) +1 ] * 4 * Tosc * (TMR2 PRESCALER VALUE
          ببینید TMR2 مخفف تایمر2 هستش یه رجیستر در میکرو وجود داره که تایمر 2 رو کنترل می کنه اسم این رجیستر T2CON هستش CON مخفف CONTROL. این رجیستر 8 بیت داره و هشتمین بیت آن بلا استفاده است. اگه بیت سوم این رجیستر یک شود، تایمر 2 که هشت بیتی است فعال می شود. برای ماژول PWM بیت های 4،5،6و7 این رجیستر استفاده ای نداره و آنها را صفر می کنیم. اما دو بیت اول این رجیستر ، PRESCALER VALUE را مشخص می سازد. که یک عدد است. اگر این دوبیت را 00 مقدار بدیم PRESCALER = 1 است. اگر این دوبیت را 01 مقدار بدهیم مقدار PRESCALER = 4 است و اگر آنها را 11 مقدار دهی کنیم PRESCALER = 16 است.
          حال شما سعی کنید تا با تغییر فرکانس اسیلاتور میکرو و نیز PRESCALER هم به دوره تناوب مورد نظرتان برسید و هم یک مقدار صحیح برای PR2 بدست آورید. باید کمی محاسبه انجام دهید. اگر نشد چاره ای جز تقریب نیست و یا راه حل دیگری پیدا کنید.
          پارامتر مهم دیگه DUTY CYCLE هستش. ببینید میکروی PIC16F876 دارای 2 تا ماژول PWM هستش. و متناظر با هر یک ، یک پایه خروجی وجود دارد. نام اولین پایه که به ماژول PWM1 مربوط می شود ، CCP1 و دیگری CCP2 هستش که در PIC16F876 اولی روی پایه ی 13 یعنی RC2 و دومی روی پایه 12 یعنی RC1 قرار دارد. بنابراین موج مربعی شما فقط روی یکی از این پایه ها می تواند باشد و آنها را باید به عنوان خروجی تعریف کرد. هر کدوم از این ماژول ها دارای یک ثبات کنترلی هستن که برای PWM1 نام آن CCP1CON و برای دومی نام آن CCP2CON می باشد. شاید شما بگید که اصلا CCP یعنی چه؟ باید به شما بگم که اکثر میکروهای PIC دارای ماژولی به نام CCP هستند که ماژول PWM یکی از انها است. CCP مخفف کلمه CompareCapturePWM هستش که 3 ماژول متفاوت هستند. بگذریم. ... هر کدوم از رجیسترهای ccp1con و ccp2con دارای 8 بیت هستند که 2 بیت 7 و 8 آنها بلا استفاده است. بیت های 5 و 6 را می توان به ترتیب B0 و B1 نامید. هروقت از ماژول PWM استفاده می کنیم بیتهای 3و4 از این رجیستر را یک کرده و دو بیت اول ان را 0 می کنیم. اگر بخواهیم از PWM1 یا PWM2 استفاده کنیم بیت های 3 و 4 رجیستر کنترلی آن را باید یک کرد در غیر اینصورت 4 بیت اول را 0 می کنیم.
          هر کدوم از این ماژول های PWM دارای 2 رجیستر 8 بیتی هستند به نام های CCPR1L و CCPR2H برای PWM1 و CCPR2L و CCPR2H برای PWM2.
          در هنگامی که ماژول PWM استفاده می کنیم باید مقدار CCPR1L برای PWM1 و CCPR2L برای PWM2 را مشخص سازیم ما بیت های این رجیستر ها را از اولین بیت تا هشتمین بیت به اینصورت نام گذاری می کنیم: B9,B8,B7,B6,B5,B4,B3,B2 این هشت بیت به علاوه 2 بیت B0 و B1 از رجیستر CCPxCON ( مقدار x برای PWM1 یک است و برای PWM2 دو است.) ، یک مجموعه 10 بیتی را تشکیل می دهند که B0 و B1 دو بیت کم ارزش تر این مجموعه اند. این مجموعه 10 بیتی برای تعیین DUTY CYCLE استفاده می شود. ما برای تعیین DUTY CYCLE از فرمول زیر استفاده می کنیم:
          (PWM dutycycle = (B9..B0 VALUE) * Tosc * (TMR2 PRESCALER VALUE
          اکنون فرض کنید که می خواهیم موجی با فرکانس 500KHZ روی پایه CCP1 (پایه 13) ذاشته باشیم.و فرکانس کریستال میکروی ما 4 مگا هرتز هستش.
          اولین گام اینه که فرکانس مذکور را عکس کنیم تا دوره تناوب بدست آید: که می شه 2 میکروثانیه . اگر بخواهیم DUTY CYCLE پنجاه درصد باشه بنابراین مقدار DUTYCYCLE باید 1 میکروثانیه باشد.فرکانس میکرو 4 مگا هرتز هستش لذا دوره تناوب آن (Tosc) می شه 0.25 میکروثانیه. اول مقدار PR2 را بدست می آوریم و در گام اول مقدار 1 را برای PRESCALER درنظر می گیریم بنابراین داریم:
          2US = (PR2+1) * 4 * 0.25 US * 1
          2 = PR2+1
          PR2 = 1 ... OR PR2 = %00000001
          حال با توجه به مقدار DUTY CYCLE دلخواهمان مقدار B9..B0 را تعیین می کنیم:
          1US = (B9...B0 VALUE) * 0.25 US * 1
          B9...B0 = 4 ... OR B9...B0 = %0000000100

          یعنی: CCPR1L = %00000001 و بیت های 5 , 6 رجیستر CCP1CON که همان B0 و B1 هستند ، 0 می شوند. بنابراین مجهولات مقدارشان مشخص شد.
          بعد از آنکه مجهولات مقدارشان معین شد. در هرجای برنامه که می خواستید میکرو موج مربعی تولید کند دستورات زیر را قرار می دهید:
          TRISC.2 = 0
          PR2 = %00000001
          CCPR1L = %00000001
          T2CON = %00000100
          CCP1CON = %00001100
          این مجموعه اکنون یک موج با فرکانس 500 کیلوهرتز روی RC2 تولید می کند.
          این موج همچنان پا برجاست مگر آنکه در یکی از ثبات های مذکور تغییر ایجاد کنید. دیگر دستورات در کنار تولید این موج انجام می شوند و هیچ تاثیر محسوسی روی این موج ندارند. در ضمن PIC16F876 و PIC16F877A سه تا تایمر داره که تایمر 1 16 بیتی هستش و دوتای دیگه 8 بیتی.
          اگه اجازه بدید درباره وقفه بعدا توضیحات لازم رو بدم چون این بحث نیز مفصله.

          شما پرسیدید که چطور می شه عدد 1385 رو در یک متغیر ذخیره کرد درحالیکه اعداد را تک تک از کی بورد می شه خوند. برای این کار شما یک متغیر از نوع WORD تعریف می کنید.یک متغیر از نوع WORD می تواند ماکزیمم مقدار 65535 را داشته باشد. مثلا نام این متغیر را YEAR می نامیم. فرض می کنیم عدد 1 را در متغیری با نام H و عدد 3 را در متغیری با نام T و عدد 8 را در متغیری با نام D و عدد 5 را در متغیری با نام Y ذخیره ساخته اید. اکنون با این کد عدد 1385 را در YEAR ذخیره می سازیم::
          YEAR = (H * 1000) + (T * 100) + (D * 10 ) + Y
          بنابراین جواب سوال های 1 ، 5 و 6 شما را دادم. جواب سوال 4 شما را نمی دونم. و درباره سوال های 2 و 3 شما بعدا صحبت خواهم کرد.

          دیدگاه


            #20
            چندین عملیات پردازش

            با سلام و تشکر فراوان از a_sourena عزیز :

            این عکس هم تقدیم به تو دوست عزیز و همه کاربران سایت:


            ما بی صبرانه منتظر توضیحات شما درباره , سوالات 2و 3 و وقفه ها هستیم .

            در ضمن با dspic کارکردی و کلا اطلاعی دربارشون داری ؟

            آیا با دستورات usb کار کردی برای pic؟

            روش استفاده از watchdog timer راهم اگر تونستی یک توضیح بده ؟

            فیوزهای power-up timer و low voltage programing برای چی استفاده میشوند ؟

            آیا موقعی brown-out reset فعال است , اگر ولتاژ از 2.7 کمتر شود میکرو ریسیت میشود ؟

            آیا با pic18f4550 کار کردی ؟



            با تشکر خیلی فراوان که وقتت را برای پاسخ به من میگذاری ؟

            موفق و پیروز باشید.
            زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

            دیدگاه


              #21
              چندین عملیات پردازش

              سلام
              از گلتون ممنونم.
              قبل از آنکه بپردازیم به وقفه یه نکته ای درباره pwm باید بگم و اون اینکه در محاسبه مقادیر PR2 و CCPR1L نباید مقدار CCPR1L از PR2 بیشتر باشه که در اینصورت یک DUTY CYCLE صد در صد خواهیم داشت یعنی پایه CCP1 همواره یک می شود.
              وقفه:
              اکثر میکروکنترلرهای pic بیش از 13 منبع وقفه دارند مثل تایمرها ، تغییر وضعیت پورت b ، وقفه پایه خارجی INT ، تبدیل آنالوگ به دیجیتال و....
              وقفه دارای یک رجیستر 8 بیتی کنترلی است با نام INTCON بیت هشتم این رجیستر بانام GIE ، برای فعال سازی هر یک از این وقفه ها باید یک بشه در بیسیک دستوری با نام ENABLE وجود داره که این کارو انجام می ده. برای هر یک از این وقفه ها یه بیت فعال سازی که معمولا به حرف E ختم می شوند وجود دارد ویک بیت فلگ که در انتهای نام آنها حرف F وجود داره. بیت فلگ وقتی یک می شه که وقفه مربوطه رخ دهد. در خود رجیستر INTCON فقط بیت های کنترلی و فلگ 3 تا از وقفه های مذکور وجود داره. این وقفه ها عبارتند از : TIMER0 ،  ، و  . در زیر نام این وقفه ها ، نام بیت فعال سازی آنها و نام بیت فلگ آنها و ردیف هرکدام در رجیستر INTCON را می نویسم:
               - وقفه INT (پایه خارجی) :
              بیت فعال سازی INTE پنجمین بیت رجیستر INTCON.
              بیت فلگ INTF دومین بیت رجیستر INTCON
              -  وقفه تغییر وضعیت حداقل یکی از چهار بیت با ارزش پورت B :
              بیت فعال سازی RBIE چهارمین بیت رجیستر INTCON
              بیت فلگ RBIF اولین بیت رجیستر INTCON
              - وقفه TIMER0:
              بیت فعال سازی T0IE ششمین بیت رجیستر INTCON
              بیت فلگ T0IF سومین بیت رجیستر INTCON
              اما برای فعال سازی دیگر وقفه ها و دسترسی به بیت فلگ آنها باید ابتدا هفتمین بیت رجیستر INTCON را یک نمود و سپس با استفاده از اطلاعات دیتا شیت رجیستر مربوط به آن وقفه را پیدا کرد وبیت فعال سازی آن را نیز یک کرد. اجازه بدید که درباره این 3 منبع وقفه کمی صحبت کنم . این مطالبی که می گم برای دیگر وقفه ها نیز قابل تعمیم است.
              فرض می کنیم که شما می خواهید همزمان از این 3 منبع وقفه برای PIC16F877 استفاده کنید پس اول دستورات فعال سازی را باید بنویسید:
              TRISB=%11110001
              INTCON = %10111000
              چون می خواهیم از وقفه تایمر 0 هم استفاده کنیم باید این تایمر رو هم فعال کرد. و ما مثلا مقدار PRESCALER = 2 را برای آن در نظر می گیریم ( برای توضیحات بیشتر درباره تایمر 0 به مقاله تایمر در میکروکنترلرهای PIC16F84 در سایت ما WWW.SELRO.NET مراجعه کنید) به علاوه فرض می کنیم که وقفه پایه خارجی به لبه بالا رونده حساس باشه .ما این کارها را با دستور زیر انجام می دهیم:
              OPTION_REG= %01000000
              اکنون تایمر 0 و هر 3 وقفه فعال شده اند. این 3 خط کد را در هرجای برنامه که نیاز به فعال سازی وقفه داشتیم می نویسیم. حتی زمانی که برنامه به دستور END می رسد ، این وقفه ها فعالند مگر آنکه بیت های فعال سازی آن ها را 0 کرده باشیم ویا GIE را 0 کرده باشیم.
              به محض وقوع هر یک از این وقفه ها برنامه به زیر روال وقفه پرش می کند. زیر روال وقفه حتما باید بعد از دستور END نوشته شود و با دستور ON INTERRUPT شروع می شود. خب فرض می کنیم که می خواهیم هرگاه وقفه پایه خارجی رخ داد PORTC.1 یک شود. وقتی وقفه تایمر رخ داد PORTC.2 یک شود و وقتی وقفه تغییر وضعیت پورت B رخ داد PORTC.3 یک شود. برای این منظور چه کنیم در حالیکه تنها یک دستور ON INTERRUPT وجود داره؟
              در این زمان بیت های فلگ هستند که به داد ما می رسند. بنابراین این قطعه کد را بعد از END می نویسیم:
              On Interrupt
              If INTCON.INTF = 1 Then
              PORTC.1 = 1
              PORTC.2 = 0
              PORTC.3 = 0
              Endif
              If INTCON.T0IF = 1 Then
              PORTC.1 = 0
              PORTC.2 = 1
              PORTC.3 = 0
              Endif
              If INTCON.RBIF = 1 Then
              PORTC.1 = 0
              PORTC.2 = 0
              PORTC.3 = 1
              Endif

              خب مشخص شد که برای هر یک از وقفه ها چه عملیاتی انجام شود. ولی هنوز کار تمام نشده. اولا بگم که هر وقت برنامه به زیر روال وقفه بر میگردد بیت GIE صفر می شود و با دستور RESUME مجددا یک می شود. ثانیا اگر بخواهید که همچنان این وقفه ها فعال باشند باید بیت فلگ آن ها را صفر کنید. کجا ؟ در انتهای این زیر روال و قبل از RESUME. هرگز در این زیر روال کاری با بیت های فعال سازی نداشته باشید مگر آنکه بخواهید ان وقفه را غیر فعال سازید که برای این منظور بیت فعال سازی آن را صفر کنید در غیر اینصورت هرگز پای بیت های فعال سازی را وسط نکشید. خب ما فرض می کنیم که پس از این وقفه ، همچنان وقفه ها فعال باشند پس قطعه کد زیر را می نویسیم و با دستور RESUME کار زیر روال را خاتمه می دهیم:
              INTCON.INTF = 0
              INTCON.T0IF = 0
              INTCON.RBIF = 0
              RESUME

              این هم از جواب سوال های 2 و 3 شما.
              با DSPIC کار نکردم و فعلا درباره این خانواده قدرتمند PIC اطلاعی ندارم.
              WWW.SELRO.NET
              خدا نگهدار

              دیدگاه


                #22
                چندین عملیات پردازش

                با سلام و تشکر فراوان از a_sourena عزیز :

                خیلی ممنون که کامل توضیح میدی!

                خود PRESCALER برای چی هست ؟

                وقفه های ccp1 , ccp2 برای چی هستند؟

                بی زحمت درباره تایمرها هم توضیح بده (تایمر 0-1-2) ؟

                مثلا اگر بخواهیم تایمر تا یک زمان خاصی شمارش کند (مثلا ثانیه و دقیقه وساعت را)

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

                آیا با دستورات usb کار کردی برای pic؟

                روش استفاده از watchdog timer راهم اگر تونستی یک توضیح بده ؟

                فیوزهای power-up timer و low voltage programing برای چی استفاده میشوند ؟

                آیا موقعی brown-out reset فعال است , اگر ولتاژ از 2.7 کمتر شود میکرو ریسیت میشود ؟

                آیا با pic18f4550 کار کردی ؟

                با تشکر خیلی-خیلی فراوان که وقتت را برای پاسخ به من میگذاری ؟

                موفق و پیروز باشید.
                زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                دیدگاه


                  #23
                  چندین عملیات پردازش

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

                  اگر خدا بخواد درباره تایمرهای 1 ، 2 - وقفه - ماژول های ccp و یه سری دیگه از امکانات میکروکنترلر های pic البته خانواده mid ، که در کتاب های موجود درباره آن ها توضیح داده نشده ، کم کم مقالاتی آماده می کنم و در سایتم قرار می دم. اما کمی طول می کشه

                  من یه پیشنهادی به شما می کنم و اون اینکه بهترین منبع برای سوال های شما راه نماهای میکروکنترلرهای pic هست که در سایت microchip قرار داده شده . اگر زبان شما خوب باشه می توانید از آن ها استفاده کنید. حتی می تونید با استفاده از آنها میکروکنترلرهای dspic ، خانواده 18 , 24 را نیز یاد بگیرید. کافیست که به آدرس زیر بروید:
                  http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1956
                  موفق باشید.
                  www.selro.net
                  خدانگهدار

                  دیدگاه


                    #24
                    چندین عملیات پردازش

                    با سلام.

                    بازم ممنون که تا الان وقتت را به من دادی.

                    دوستان دیگر هم مثل اینکه با pic زیاد حال نمی کنند و نمی توانند به من کمک زیادی بکنند.

                    از سایت www.ir-micro.comهم خواستی بازدید کن .

                    مقالهام هم تو سایت هست با اسم arem , خوشحال می شم یک نگاه بندازی !

                    موفق و پیروز باشید.
                    زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                    دیدگاه


                      #25
                      چندین عملیات پردازش

                      هادی جان لطفا اگه براتون مقدور هست تا جای ممکن دوستان رو راهنمایی کنید.
                      بقیه دوستان هم لطف کنن طوری پست نزنند که باعث رنجش دوستان دیگه بشه.
                      لطفا اگرم موردی برای تذکر وجود داره از طریق پیغام خصوصی به شخص اطلاع دهید.

                      arem جان ممنون میشم شما هم لینک مستقیم مقالاتتون رو اینجا بگذارین تا دوستان استفاده کنند.
                      متشکر.

                      دیدگاه


                        #26
                        چندین عملیات پردازش

                        با عرض سلام وخسته نباشید خدمت امیر عزیز:
                        با شه امیر جان مقا لاتم را می گذارم .(قابل شما را ندارد)

                        در ضمن ما کسی را سعی کردیم مورد رنجش قرار ند هیم
                        ولی دوستانی پیدا می شوند که دیگران را مورد رنجش قرار می دهند . :cry:

                        موفق و پیروز باشید.
                        زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                        دیدگاه


                          #27
                          چندین عملیات پردازش

                          دوست عزیز من خاک پا تمام بچه های این سایتم هستم ولی شما یک جوری با لحن بد صحبت کردید به نظر خودتون این لحن صحبت درست بود منم قبول دارم یک مقدار اشتباه کردم
                          دوست عزیز شما باید با کامپایلر های قوی مثل ccs کار کنید اگر میخواهید اینقدر مشکل با بیت های رجیستری نداشته باشید یک مشکلی توی بعضی کامپایلر ها هست اینکه باید مثل اسمبلی بیت های بعضی از رجیستر ها رو صفر و یک کرد ولی پیشنهاد من به شما دوست عزیزم اینه که
                          به طرف زبان سی بیاید خیلی از مشکلاتتونو حل میکنه بازم به خاطر یک مقدار عصبانیتم معذرت میخوام شما به بزگواریه خودتون منو ببخشید
                          یا علی
                          فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
                          گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

                          دیدگاه


                            #28
                            چندین عملیات پردازش

                            با سلام خدمت شما دوست عزیز :

                            من هم مخلص همه بچه های سایت و شما هستم

                            عزیز من کجا با لحن بد صحبت کردم : :?:

                            آیا اینکه , دوستان با pic حال نمی کنند . حرف بدی است ؟
                            منظور این است که با pic کلا کم کار میکنند.
                            اگر منظورم را بد رساندم , من هم معذرت می خوام.

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

                            در مورد سایت www.ir-micro.com که گفتم , برای اطلاع رسانی بود ,که اگر دوستان خواستند یک سر بزنند و مقالات من را ببینند .(آخه مثلا یکی از مدیراش من هستم , که سایت را طی می کشم)

                            با شه سعی میکنم با ccs کار کنم و پیشنهاد شما عزیز را روش کار کنم.

                            در ضمن از این به بعد سعی میکنم سوال نکنم , تا دوستان اذیت نشن :cry:

                            یا علی .

                            موفق و پیروز باشید
                            زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                            دیدگاه


                              #29
                              چندین عملیات پردازش

                              نوشته اصلی توسط arem

                              در ضمن از این به بعد سعی میکنم سوال نکنم , تا دوستان اذیت نشن :cry:

                              یا علی .

                              موفق و پیروز باشید
                              دوست عزیز چوب کاری می فرمایین
                              سوتفاهمی بود که برطرف شد دیگه این حرفارو ول کنید
                              همگی موفق باشید.

                              دیدگاه


                                #30
                                پاسخ : چندین عملیات پردازش

                                ffd
                                برای تشکر از امتیاز + استفاده کنید

                                دیدگاه

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