اطلاعیه

Collapse
No announcement yet.

مشکل با وقفه spi در بسکام

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

    مشکل با وقفه spi در بسکام

    برنامه زیر مربوط به master و slave یک ارتباط spi هست . زمانی که برنامه رو بدون وقفه مینویسم همه چی درست کار میکنه ولی زمانیکه از وقفه استفاده می کنم اصلا جواب نمیده .

    توضیح برنامه :
    میکروکنترلر (atmega32) مستر اطلاعات مربوط به یک شمارنده یک بایتی را به میکروکنترلر اسلیو (atmega32) ارسال میکند و اسلیو آنرا روی پورت d نمایش میدهد

    توضیح سخت افزار :
    پایه های mosi, miso , skc, ss متناظرا به هم وصل هستند و تغذیه دو میکروکنترلر مشترک است و به پایه های پورت d اسلیو تعداد 8 عدد led متصل است.

    برنامه master
    کد:
    $regfile = "m32def.dat"
    $crystal = 8000000
    
    Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0
    Spiinit
    Enable Interrupts
    Enable Spi
    On Spi Spi_master
    Dim A As Byte
    
    
    A = 0
    Do
    Waitms 200
    Spiout A , 1
    Loop
    
    End
    
    Spi_master:
    Incr A
    Return
    برنامه slave
    کد:
    $regfile = "m32def.dat"
    $crystal = 8000000
    
    Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = No , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0
    Spiinit
    Enable Interrupts
    Enable Spi
    On Spi Spi_slave
    Dim A As Byte
    Config Portd = Output
    
    Do : Loop
    
    End
    
    Spi_slave:
    Spiin A , 1
    Portd = A
    Return
    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org

    #2
    پاسخ : مشکل با وقفه spi در بسکام

    دوستان نظری ندارین؟
    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org

    دیدگاه


      #3
      پاسخ : مشکل با وقفه spi در بسکام

      یعنی اینقدر سوالش سخته ؟
      من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
      آلبرت اینشتین
      منبع: http://fa.wikiquote.org

      دیدگاه


        #4
        پاسخ : مشکل با وقفه spi در بسکام

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

        دیدگاه


          #5
          پاسخ : مشکل با وقفه spi در بسکام

          نوشته اصلی توسط mehrzad119
          سلام دوست من
          تو برنامت مشکلی دیده نمیشه .مشکل شاید سخت افزاری باشه.موفق باشی
          مشکل سخت افزاری نیست چون بدون استفاده از وقفه مدار کار میکنه با چند تا میکروی مختلف هم تست کردم
          من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
          آلبرت اینشتین
          منبع: http://fa.wikiquote.org

          دیدگاه


            #6
            پاسخ : مشکل با وقفه spi در بسکام

            من این سه خط رو به اول برنامه اضافه کردم :
            کد:
            $hwstack = 64
            $swstack = 48
            $framesize = 48
            و مدار شروع به کار کرد ولی یه مشکلی هست اینکه بیت یکم (پایه pd.0) یا یکسره روشن میمونه یا یکسره خاموشه (با هر بار ریست تغییر وضعیت میده)
            به نظر میاد که مدار داره دوتا دوتا میشمره !
            من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
            آلبرت اینشتین
            منبع: http://fa.wikiquote.org

            دیدگاه


              #7
              پاسخ : مشکل با وقفه spi در بسکام

              لطفا کمک کنید
              من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
              آلبرت اینشتین
              منبع: http://fa.wikiquote.org

              دیدگاه


                #8
                پاسخ : مشکل با وقفه spi در بسکام

                یعنی حتی یک نفر هم با وقفه spi کار نکرده ؟
                من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                آلبرت اینشتین
                منبع: http://fa.wikiquote.org

                دیدگاه


                  #9
                  پاسخ : مشکل با وقفه spi در بسکام

                  من الان یه چیزی فهمیدم
                  وقتی اینتراپت ها رو غیر فعال میکنم مدار درست میشمره
                  وقتی فقط اینتراپت master رو فعال میکنم باز هم مدار درست میشمره
                  اما وقتی اینتراپت slave رو فعال میکنم یا هر دو اینتراپت رو فعال میکنم مدار یکی در میون میشمره و بعضی وقتها هم در شمردن پرش زیادی میکنه

                  به نظر میاد که همه چی بستگی به اینتراپت slave داره
                  من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                  آلبرت اینشتین
                  منبع: http://fa.wikiquote.org

                  دیدگاه


                    #10
                    پاسخ : مشکل با وقفه spi در بسکام

                    من همین برنامه رو با اسمبلی نوشتم و با همین سخت افزار جواب گرفتم پس مشکل کجاست ؟
                    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                    آلبرت اینشتین
                    منبع: http://fa.wikiquote.org

                    دیدگاه


                      #11
                      پاسخ : مشکل با وقفه spi در بسکام

                      آقا منم همین مشکلو دارم نمیدونم چه کنم
                      لطفا کمک کنید

                      دیدگاه

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