اطلاعیه

Collapse
No announcement yet.

ارتباط سریال با وقفه در بسکام

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

    ارتباط سریال با وقفه در بسکام

    سلام به همه
    من می خوام میکرو AVR و کامپیوتر را با پورت com به هم وصل کنم و میکرو از طریقadc اطلاعات رو می گیره و پردازش می کنه ، به محض اینکه یک وقفه ، مثلا عدد 85از کامپیوتر به میکرو ارسال شد، میکرو اطلاعات پردازش شده رو به کامپیوتر بفرسته .باید از وقفه داخلی استفاده کنم یا خارجی؟از دستور waitkey() باید استفاده کنم یا دستور دیگری؟تو محیط بسکام این کار رو می خوام انجام بدم .
    مرسییییییییییییییی
    زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

    #2
    پاسخ : ارتباط سریال با وقفه

    به نظر من باید از وقفه پورت سریال استفاده کنی
    یه سرچی یزن توی همین قسمت یه برنامه با وقفه سریال هستش



    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

    دیدگاه


      #3
      پاسخ : ارتباط سریال با وقفه در بسکام

      می شه تو پروتیوس چک کرد که برنامه وقفه پورت سریال درست هست یا نه؟
      اگه می شه چه طوری می شه این کار رو کرد؟
      زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

      دیدگاه


        #4
        پاسخ : ارتباط سریال با وقفه در بسکام

        آره می شه

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



        اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

        دیدگاه


          #5
          پاسخ : ارتباط سریال با وقفه در بسکام

          سلام,
          این برنامه رو ببین. کامپیوتر عبارت 011110 رو به میکرو میفرسته و میکرو عبارت OK رو به کامپیوتر بر میگردونه.

          کد:
          $regfile = "m16def.dat"
          $crystal = 1000000
          $baud = 4800
          Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , Rs = Portb.5 , E = Portb.4
          Enable Interrupts
          Enable Urxc
          On Urxc Data_received
          Cls
          Cursor Off
          Dim Portdata As Integer
          Lcd "Transmitting"
          Do
          Print "Waiting"
          Wait 1
          Loop
          End                             'end program
          
          Data_received:
          Input , Portdata
          Select Case Portdata
          Case 011110 : Print "OK"
          End Select
          Return
          هر جاش مشکل داری بو راهنمایی کنم. اگر هم مشکلت از برنامه نیست بیشتر توضیح بده.

          دیدگاه


            #6
            پاسخ : ارتباط سریال با وقفه در بسکام

            من می خوام یک سنسور گاز رو به ADC میکرو بدم و میکرو مقدار دریافتی رو به ppm تبدیل کنه و در حال پردازش اطلاعات باشه ، به محض اینکه کامپیوتر عدد 85 رو به میکرو فرستاد ، میکرو خروجیشو به کامپیوتر بفرسته ، در واقع می خوام کامپیوتر با وقفه از میکرو در خواست اطلاعات کنه .یعنی خود عدد 85 رو به صورت وقفه به میکرو بفرسته ، یعنی وقفه ای که کامپیوتر به میکرو می فرسته عدد85 باشه .منظورمو متوجه می شین؟
            ممنون از برنامتون
            فقط می شه راجع به دستور select case بهم توضیح بدین :redface:
            مرسییییییییی
            زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

            دیدگاه


              #7
              پاسخ : ارتباط سریال با وقفه در بسکام

              سلام,
              خوب, برای این کار شما اطلاعات پردازش شده رو در داخل یک متغییر قرار میدید و یک متغییر برای عددی که از کامپیوتر کرفته میشه میسازید. قفه را ایجاد میکنید و داخل وقفی با د ستور Input عدد گرفته شده از کامپیوتر را داخل متغییر دومی که برای عدد کامپیوتر ساختید قرار میدید. سپس توسط Select Case شرطی را میزارید که اگر مقدار متغییر 85 بود اطلاعات پردازش شده را برگردان.

              کار دستور Select Case مثل چند دستور If در یک دستور میباشد. برای مثال شما متغییری را انخاب میکنید و توسط دستور Case به طور مثال میگویید که اگر مقدار متغییر با مقدار جلوی Case برابر بود دستور مربوط به ان Case رو اجرا کن.

              در برنامه ی زیر میکرو اگر چیزی از کامپیوتر دریافت کند ان را داخل متغییر Computernumber قرار میدهد و اگر عدد متغییر برابر 85 بود مقدار متغییر Adcdata رو به کامپیوتر باز میگرداند.(Adcdata همان اطلاعات پردازش شده است)

              کد:
              $regfile = "m16def.dat"
              $crystal = 1000000
              $baud = 4800
              Enable Interrupts
              Enable Urxc
              On Urxc Data_received
              Dim Adcdata As Integer
              Dim Computernumber As Byte
              Do
              
              Loop
              End                             'end program
              
              Data_received:
              Input , Computernumber
              Select Case Computernumber
              Case 85 : Print Adcdata
              End Select
              Return

              دیدگاه


                #8
                پاسخ : ارتباط سریال با وقفه در بسکام

                ممنون از راهنماییتون
                حالا اگه بخوام تو پروتیوس شبیه سازی کنم ، ببینم برنامم درست اجرا می شه یا نه،چه طور می تونم این کار رو انجام بدم؟
                زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

                دیدگاه


                  #9
                  پاسخ : ارتباط سریال با وقفه در بسکام

                  سلام,
                  نمیدونم باید بردی دنبال چیزی مثل Terminal یا Com port. از شبیه ساز خود بسکام هم میتونی استفاده کنی.

                  دیدگاه


                    #10
                    پاسخ : ارتباط سریال با وقفه در بسکام

                    از شبیه ساز خود بسکام چه جوری استفاده کنم؟
                    زندگی تاس خوب آوردن نیست ، تاس بد را خوب بازی کردن است

                    دیدگاه


                      #11
                      پاسخ : ارتباط سریال با وقفه در بسکام

                      سلام,

                      اول بعد از تغریف میکرو و کریستال عبارت sim$ رو وارد کنید.
                      برنامه رو کامپایل کنید.
                      دکمه ی F2 را در کیبورد فشار دهید.
                      اگر پیغامی امد OK را بزنید که پنجره ی شبیه سازی باز شود.
                      از بالای پنجره ی باز شده دکمه ی شروع (شکل دکمه ی Play در Media Player است) را بزنید.
                      شبیه سازی شروع شد, حالا قسمت ابی وسط صفحه همان Terminal ها خط فرمان سریال شماست. برای مثال اگر در برنامه ی شما در قسمت ابی عبارت 85 نوشته شده و Enter را فشار دهید باید عبارت های پردازش شده باز گردانده شود.

                      2 نکته:
                      1- هنگام برنامه نویسی در میکروی یا شبیه سازی در پروتیوس عبارت sim$ رو حذف کنید.
                      2- برای تغییر مقدار ADC در محیط شبیه سازی در بالای پنجره ی محیط شبیه ساز علامت LCD را بزنید و در پنجره ی باز شده کانال ACD و مقدار ADC را مشخص کنید.

                      موفق باشید.

                      دیدگاه


                        #12
                        پاسخ : ارتباط سریال با وقفه در بسکام

                        سلام...

                        برنامه پورت سریال با وقفه توی بسکام رو نوشتم و روی امولاتور بسکام درست جواب داد اما توی عمل خروجی نداره (توی VB) ( مشکل از سخت افزار نیست چون سخت افزار رو با برنامه کدویژن چک کردم و جواب داده.

                        مشکل از چی میتونه باشه؟؟

                        $regfile = "m161def.dat"
                        $crystal = 8000000
                        $sim
                        $baud = 9600
                        Enable Interrupts
                        Enable Urxc
                        Dim A As Byte
                        Dim B As Byte
                        On Urxc Robo
                        A = 125
                        B = 32
                        Dim Computernumber As Byte
                        Do
                        Loop
                        End
                        Robo:
                        Select Case Computernumber
                        Case 85 : Print A
                        Case 95 : Print B
                        End Select
                        Return
                        فقر ، شب را " بی غذا " سر کردن نیست ................ فقر ، روز را " بی اندیشه" سر کردن است

                        دیدگاه


                          #13
                          پاسخ : ارتباط سریال با وقفه در بسکام

                          سلام,

                          منظورت اینه که با Visual Basic.Net برنامه نوشتی؟
                          سورس برنامه ایت رو بزیر شاید اون ایراد داره.

                          دیدگاه


                            #14
                            پاسخ : ارتباط سریال با وقفه در بسکام

                            نوشته اصلی توسط asadi_keyhan
                            سلام,

                            منظورت اینه که با Visual Basic.Net برنامه نوشتی؟
                            سورس برنامه ایت رو بزیر شاید اون ایراد داره.
                            سلام
                            اون ایرادی نداره برنامه ای که با کدویژن نوشتم روی اون کاملا جواب میده
                            فقر ، شب را " بی غذا " سر کردن نیست ................ فقر ، روز را " بی اندیشه" سر کردن است

                            دیدگاه


                              #15
                              پاسخ : ارتباط سریال با وقفه در بسکام

                              سلام,
                              خوب مشکل اینجاست که شما مقدار دریافت شده از کامپیوتر رو در متغییر Computernumber قرار ندادی.
                              قبل از Select Case Computernumber خط زیر رو وارد کن.

                              Input , Computernumber

                              دیدگاه

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