اطلاعیه

Collapse
No announcement yet.

مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

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

    مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

    سلام خسته نباشید
    من یه atmega32l گرفتم خواستم تستش کنم با bascom یه خط برنامه ساده نوشتم که پورت مثلا
    B.1 رو set کنه ولی دیدم led روشن نمیشه اومدم با مولتی متر پورت رو ازمایش کردم دیدم وقتی
    set میکنم بر عکس عمل میکنه و پورت رو 0 میکنه ولی وقتی دستور reset میدم پورت 1 میشه

    بعد یه چیز جالب دیگه هم اتفاق افتاد این بود که همون اول برنامه که یه پورت رو output میکنم
    کل پورت set میشه انگار به صورت پیش فرض 1 هست!!!!!!!!!!!

    $regfile = "m32def.dat"
    $crystal = 8000000
    تا همین جا کافیه تا کل پورت 1 بشه!!!!!!>>>>>Config Portb = Output
    همه ی led ها به جز اونی که 1 کردم روشن!!!!!!!!ه<<<<<<<<<& lt; Reset Portb.0
    فقط این خاموشه!!!!!!!!!>>>>>>>>&gt ;Set Portb.1
    End


    واقعا ممنون میشم اگه کمکم کنید
    مرسی بی صبرانه منتظر جوابم

    #2
    پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

    برنامه درسته.
    وقتی از Config استفاده می کنی فقط پورت رو به عنوان خروجی تعریف کردی. ولی وضعیتش رو مشخص نکردی.
    وقتی از دستور Reset استفاده کردی فقط وضعیت پایه B.0 رو تعیین کردی( صفر کردی). اما وضعیت بقیه پایه های پورت B رو تعیین نکردی.
    وقتی یه پایه به عنوان خروجی تعریف میشه اما مقدار دهی برای تعیین وضعیتش انجام نمیشه ، رو رفتارش نمیشه اظهار نظر کرد.

    خلاصه اینکه وقتی یه پورت رو به عنوان خروجی تعریف می کنی حتما بعدش وضعیت صفر و یک بودنش رو مشخص کن

    دیدگاه


      #3
      پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

      بهتر بود شما از وضعیت 0 پورت برای روشن کردن استفاده می کردی

      دیدگاه


        #4
        پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

        نوشته اصلی توسط حامد جعفری
        برنامه درسته.
        وقتی از Config استفاده می کنی فقط پورت رو به عنوان خروجی تعریف کردی. ولی وضعیتش رو مشخص نکردی.
        وقتی از دستور Reset استفاده کردی فقط وضعیت پایه B.0 رو تعیین کردی( صفر کردی). اما وضعیت بقیه پایه های پورت B رو تعیین نکردی.
        وقتی یه پایه به عنوان خروجی تعریف میشه اما مقدار دهی برای تعیین وضعیتش انجام نمیشه ، رو رفتارش نمیشه اظهار نظر کرد.

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

        اگه توجه کنید تعجب من هم برای اینه که وقتی با این برنامه :

        $regfile = "m32def.dat"
        $crystal = 8000000
        Config Portb = Output
        end

        میکرو را پروگرام میکنم کل پورت b روشن میشه .و وقتی من یه پین رو set میکنم که در شرایط عادی باید led اون پین روشن بشه

        برعکس تازه خاموش میشه....

        مگه بطور پیش فرض همه ی پایه 0 نیست مگه این که ما با دستو set یکشون کنیم؟؟؟؟؟

        یعنی مشکل کجاست یا از کجا میتونه باشه؟ میکرو ؟ بسکام؟پروگرامر؟

        فکر کنم منظورمو این دفعه بهتر گفتم

        منتظرم تا با کمک شما مشکلم حل بشه مرسی

        دیدگاه


          #5
          پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

          نوشته اصلی توسط رضا حاجی زاده
          بهتر بود شما از وضعیت 0 پورت برای روشن کردن استفاده می کردی
          مرسی ولی میشه بیشتر توضیح بدین من متوجه نشدم

          دیدگاه


            #6
            پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

            نوشته اصلی توسط soheil_iman
            مگه بطور پیش فرض همه ی پایه 0 نیست مگه این که ما با دستو set یکشون کنیم؟؟؟؟؟
            تا وقتی وضعیت پورت رو تعیین نکنی نه یکه و نه صفر. تو حالت Z میره که همون LED رو روشن می کنه.
            یه کاری کن بعد از Set کردن یه پایه ، یه تاخیر بذار . امتحان کن.
            من تا حالا همچین چیزی ندیدم.

            دیدگاه


              #7
              پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

              نوشته اصلی توسط حامد جعفری

              تا وقتی وضعیت پورت رو تعیین نکنی نه یکه و نه صفر. تو حالت Z میره که همون LED رو روشن می کنه.
              یه کاری کن بعد از Set کردن یه پایه ، یه تاخیر بذار . امتحان کن.
              من تا حالا همچین چیزی ندیدم.
              یعنی شما میگید وقتی حالت z هست ما پورت رو خروجی در نظر میگیریم led هایی که به اون پورت وصل هستند باید روشن بشن؟؟؟

              من که قبلا کار میکردم تا وقتی یه پورت رو با دستور 1 نمیکردی اون پورت ولتاژ ی نداشت....

              اتفا قا اون کار رو هم کردم بعد از set یه waitms 30 'گذاشتم با زم وقتی با ولت متر اندازه میگیرم 0 نشون میده ولی

              با ولت متر پایه ای رو که reset کردم اندازه میگیرم 4.6 رو نشون میده یعنی کاملا برعکس.......واقعا عجیبه

              حالا یه چیزی من یه برد پروگرامر آموزشی امیر کیت گرفتم وقتی زنگ زدم پشتیبانیش گفت این برد برای codevision(یعنی بهتره)

              >>>یعنی امکان داره یه برد با codvision جواب بده با bascom جواب نده ؟؟؟؟؟ما که تو دانشگا ه با یه برد هر دو رو میتونستیم آزمایش کنیم!!



              دیدگاه


                #8
                پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

                شما احتمالا LED رو بر عکس بستی :mrgreen:
                اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

                دیدگاه


                  #9
                  پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

                  نه این طوری نیست که برنامه ای که Bascom می نویسی ممکنه جواب نده.

                  این دفعه بیا پورت رو عوض کن. ببین چطوری میشه

                  دیدگاه


                    #10
                    پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

                    یه آزمایش


                    قانون: آند led رو بزن به vcc و کاتد رو بزن به پورت مورد نظر

                    1- پورت مورد نظر رو خروجی با مقاومت بالاکش تنظیم بکن
                    حالا مقدار پین رو 0 بکن

                    نتیجه؟؟؟

                    2- پورت مورد نظر رو خروجی بدون مقاومت بالاکش تنظیم بکن
                    حالا مقدار پین رو 0 بکن

                    نتیجه؟؟؟

                    موفق باشی

                    دیدگاه


                      #11
                      پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

                      نوشته اصلی توسط رضا حاجی زاده
                      یه آزمایش


                      قانون: آند led رو بزن به vcc و کاتد رو بزن به پورت مورد نظر

                      1- پورت مورد نظر رو خروجی با مقاومت بالاکش تنظیم بکن
                      حالا مقدار پین رو 0 بکن

                      نتیجه؟؟؟

                      2- پورت مورد نظر رو خروجی بدون مقاومت بالاکش تنظیم بکن
                      حالا مقدار پین رو 0 بکن

                      نتیجه؟؟؟

                      موفق باشی
                      از شما ممنونم مشکلم حل شد مشکل اینجا بود که با ولت متر اشتباه تست میکردم led ها هم به با یه pull up به vcc وصل شدن

                      دیدگاه


                        #12
                        پاسخ : مشکل بامیکرو (پورتها بر عکس عمل میکنند)atmega 32l

                        خدا رو شکر
                        موفق باشی

                        دیدگاه

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