اطلاعیه

Collapse
No announcement yet.

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

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

    #16
    پاسخ : مشکل اساس با سون سگمنت بزرگ

    من هم همون مشکل رو دارم،فقط از یو ال ان نباید استفاده کنم،کسی نیس کمک کنه یه ذره ؟
    Hope For The Best
    Plan For The Worst

    دیدگاه


      #17
      پاسخ : مشکل اساس با سون سگمنت بزرگ

      نوشته اصلی توسط majid.4206
      از کمکتون ممنونم ولی من با code vision کار می کنم(البته بصورت اماتوری :redface
      مشکلی نیست . شما بفرمایید کجای کار مشکل دارید ، من راهنمایی تون می کنم . شما در codevision پیاده کنید

      موفق باشید

      دیدگاه


        #18
        پاسخ : مشکل اساس با سون سگمنت بزرگ

        سلام
        من مشابه این پروژه را بستم ولی با کاتد مشترک.
        شما برای تغذیه 9 ولت را از میکرو جدا کنید از اپتوکوپلر استفاده کنید.

        دیدگاه


          #19
          پاسخ : مشکل اساس با سون سگمنت بزرگ

          سلام
          من هنوز مشکلم با این تایمرا حل نشده :angry:
          می خواستم با استفاده از وقفه تایمر 7segment (سه تایی) رو روشن کنم (البته با حلقه for جواب میده) ولی تو این وقفه ها گیر افتادم
          مقدار زمان وقفه رو 2ms تعیین کردم .
          یه سوال: می خواستم هر بار که وقفه تایمر اجرا میشه به ترتیب پایه های B1,B2,B3 رو off کنه تو روتین وقفه هم اینا رو نوشتم

          // Timer 2 overflow interrupt service routine
          interrupt [TIM2_OVF] void timer2_ovf_isr(void)
          {
          PORTB=PORTB.0>>1;
          PORTB=0;
          if (PORTB==PORTB.4)
          PORTB=PORTB.0;
          }

          اگه اشتباست لطف کنید یه راهنماییم بکنید :cry2:
          ذکات علم یاد دادنه ....

          دیدگاه


            #20
            پاسخ : مشکل اساس با سون سگمنت بزرگ

            نوشته اصلی توسط majid.4206
            سلام
            من هنوز مشکلم با این تایمرا حل نشده :angry:
            می خواستم با استفاده از وقفه تایمر 7segment (سه تایی) رو روشن کنم (البته با حلقه for جواب میده) ولی تو این وقفه ها گیر افتادم
            مقدار زمان وقفه رو 2ms تعیین کردم .
            یه سوال: می خواستم هر بار که وقفه تایمر اجرا میشه به ترتیب پایه های B1,B2,B3 رو off کنه تو روتین وقفه هم اینا رو نوشتم

            // Timer 2 overflow interrupt service routine
            interrupt [TIM2_OVF] void timer2_ovf_isr(void)
            {
            PORTB=PORTB.0>>1;
            PORTB=0;
            if (PORTB==PORTB.4)
            PORTB=PORTB.0;
            }

            اگه اشتباست لطف کنید یه راهنماییم بکنید :cry2:
            عزیزم یکم خودت رو جای میکرو بد بخت بذار ببین از این برنامه چی می فهمه :mrgreen: شوخی کردم


            کد:
            این دستور یعنی چی؟
            if (PORTB==PORTB.4)
            
            منظورتون اینه :
            if (PORTB.4==1)
            
            و از این:
            PORTB=PORTB.0>>1;
            منظورتون اینه:
            PORTB=PORTB<<1;
            جهت شیفت هم اشتبا بود.
            
            برنامه نهایی
            
            // Timer 2 overflow interrupt service routine
            interrupt [TIM2_OVF] void timer2_ovf_isr(void)
            { 
            PORTB=PORTB<<1;
            if (PORTB.4==1)
            PORTB=0x01;
            }
            
            
            در قبل از while هم این دستور رو بذار:
            PORTB = 0x01;
            بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
            اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

            دیدگاه


              #21
              پاسخ : مشکل اساس با سون سگمنت بزرگ

              سلام از کمکتون بینهایت سپاسگزارم
              راستش من از همون اول گفتم مبتدیم ولی کم کم راه میفتم اشکالی نداره... :redface:

              ][/img]


              من برناممو میزارم شما یه لطفی بکنید ببینید اشکالش کجاست (می خوام ایراداتمو بدونم تا تو برنامه های بعدی اینقدر میکرو از دستم عذاب نکشه )


              http://www.4shared.com/file/92380616/9b3b59de/file_1.html
              ذکات علم یاد دادنه ....

              دیدگاه


                #22
                پاسخ : مشکل اساس با سون سگمنت بزرگ

                اولا pullup کلیدها فعال نیست
                بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                دیدگاه


                  #23
                  پاسخ : مشکل اساس با سون سگمنت بزرگ

                  نوشته اصلی توسط mostafahk
                  اولا pullup کلیدها فعال نیست
                  میشه بفرمایید دقیقا منظورتون کجاست منpull up کردم کلیدهارو

                  ][/img]
                  ذکات علم یاد دادنه ....

                  دیدگاه


                    #24
                    پاسخ : مشکل اساس با سون سگمنت بزرگ

                    خوب این موضوع برمی گرده به همون که باید ریشه ای یاد گرفت.
                    pullup چه طور فعال میشه. codevision چطور pullup رو فعال می کنه؟ آیا جادو میکنه ؟ ورد خاصی داره؟
                    زمانی که یک پین در وضعیت ورودی قرار داره یعنی ddr ش صفره، اگه بین portش رو یک کنید pullupش فعال میشه.
                    شما باید بیت هایی که کلید بهشتون وصله رو همیشه 1 نگه دارید.
                    مثلا اونجایی که من گفتم بنویسید PORTB = 0x1 باید بنویسید PORTB=0x31
                    ok?
                    بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                    اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                    دیدگاه


                      #25
                      پاسخ : مشکل اساس با سون سگمنت بزرگ

                      سلام
                      از اینکه حوصله به خرج میدید و سوالای من کم سوادو جواب میدید واقعا ممنونم :redface:
                      حق با شما بود حالا pullup شو فعال کردم الان اون دستورای شرطیم اجرا میشه ولی نمی دونم چرا شاسی اولیو می زنم هر ستا عدد با هم
                      زیاد میشه من می خوام هر 2ms سونسگمنتا رفریش بشن ولی فکر کنم مال همین قضیه باشه یعنی 2ms کمه باید زیادترش کنم؟
                      شایدم تو دستورای شرطی که گذاشتم اشتباه کردم ؟
                      در ضمن این دستور PORTB=0X31 برای pullup کردن استفاده شده؟میشه یه توضیح بدین؟
                      راستی من برنامرو مثلا اصلاح کردم که بازم همون مشکل بالایی رو داره میشه یه نظری روش بدین ممنون میشم

                      http://www.4shared.com/file/92468596/3625cbb9/file_2.html


                      دوست عزیز می دونم از دستم میشید ولی ثواب داره :redface:
                      ذکات علم یاد دادنه ....

                      دیدگاه


                        #26
                        پاسخ : مشکل اساس با سون سگمنت بزرگ

                        سلام
                        من منتظر جوابم :cry2:
                        ذکات علم یاد دادنه ....

                        دیدگاه


                          #27
                          پاسخ : مشکل اساس با سون سگمنت بزرگ

                          نوشته اصلی توسط majid.4206
                          سلام
                          از اینکه حوصله به خرج میدید و سوالای من کم سوادو جواب میدید واقعا ممنونم :redface:
                          حق با شما بود حالا pullup شو فعال کردم الان اون دستورای شرطیم اجرا میشه ولی نمی دونم چرا شاسی اولیو می زنم هر ستا عدد با هم
                          زیاد میشه من می خوام هر 2ms سونسگمنتا رفریش بشن ولی فکر کنم مال همین قضیه باشه یعنی 2ms کمه باید زیادترش کنم؟
                          شایدم تو دستورای شرطی که گذاشتم اشتباه کردم ؟
                          در ضمن این دستور PORTB=0X31 برای pullup کردن استفاده شده؟میشه یه توضیح بدین؟
                          راستی من برنامرو مثلا اصلاح کردم که بازم همون مشکل بالایی رو داره میشه یه نظری روش بدین ممنون میشم

                          http://www.4shared.com/file/92468596/3625cbb9/file_2.html


                          دوست عزیز می دونم از دستم میشید ولی ثواب داره :redface:
                          سلام
                          این حرفها چیه، من هر کسی رو که حس کنم می خواد یاد بگیره و وقت میذاره کمکش می کنم. خاک پاشم هستم
                          این دستور PORTB = 0x31 نکتش اینه که این عدد 0x31 (یعنی 31 هگزا) از کجا حساب شده. 4 بیت اولش که قراره همه صفر بشن الا اولی، این از 1ش. و به بیت 4 و 5 هم که کلید وصل شده و باید یک بمونن تا pullup بشن و این هم از 3 .
                          چرا سه تا digits[] ساختید؟ این از اون حرکت هاستا :mrgreen:
                          مشکل شما تو اساس الگوریتم برنامه است.
                          شما تو اینتراپت دارید فقط cathode ها رو خاموش و روشن می کنید و حلقه برنامه برای خودش یه ساز دیگه میزنه و شروع می کنه به خاموش و روشن کردن کاتدها و آند ها. باید یکی از این دو قسمت وظیفه set کردن کاتد و ها و آندها رو بر عهده بگیره (ترجیحا اینتراپت). حلقه اصلی فقط متغییرها رو تغییر بده و مستقیم با سون سگمنت کاری نداشته باشه. مثلا بیاید 3 متغییر به نامهای seg1 و seg2 و seg3 در نظر بگیرید که اینتراپت شروع کنه محتواشون رو به نوبت رو سگمنت مربوطه نشون بده. بعد حلقه اصلی با تغییر این سه متغییر هر چی دوست داره برای نمایش بذاره. seg1 و seg2 وseg3 باید عمومی باشند(global) یعنی خارج از هر تابعی تو کف برنامه تعریف شده باشن.




                          تو برنامه نویسی همیشه یه قانون رو تو تایپ رعایت کنید، دستورات بین هر { و } رو با یک tab زدن کمی جلوتر ببرید تا خواناتر بشه.

                          اینطوری منظورمه :

                          void main()
                          {
                          int a;
                          a = PINA;
                          if( a==5)
                          {
                          PORTB=6;
                          PORTC=5;
                          }
                          }
                          البته ادیتور سایت نمی تونه درست نشون بده :mrgreen:

                          فایلها رو هم تو google pages یا persiangig بذارید که مستقیم و سریع دانلود کنیم.
                          بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                          اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                          دیدگاه


                            #28
                            پاسخ : مشکل اساس با سون سگمنت بزرگ

                            سلام
                            شما اقایی (تو زندگی اگه یه نفر یه مطلب هر چند کوچیک به من یاد بده من تا اخر عمر مدیونشم :redface
                            بگذریم اقا من اون برنامرو یکم دستکاری کردم اخه هی میدیدم یه جای کار میلنگه یعنی اصلا سگمنتا با cathod شون هماهنگ نبودن
                            این شد که اینو براش نوشتم اگه لطف کنید مثل دفه های قبل که شرمندمون :redface: کردین این بار هم یه نظر بدین (ایراداشو می خوام بدونم)

                            http://www.4shared.com/file/92751139/e740d18a/new_7segment_1.html


                            این بار همون فرموده شما رو اجرا کردم عددارو نمایش میداد با یکمی لرزش که اونو میشه با تنظیم کردن وقفه تایمر حل کرد
                            ولی یه مشکلی که هست اگه بخوام با استفاده از شاسی ها عددارو تغییر بدم خیلی سریع اونا عوض میشن من می خوام مثلا هر 100ms
                            عوض بشن تا بشه کنترولشون کرد از delay هم که استفاده می کنم دوباره segment تا میریزه به هم یعنی همشون یه عددو نشون میدن
                            ایراد میتونه از کجا باشه؟؟

                            در ضمن من این بار هم تو 4shared اپلود کردم شرمنده با اونا نتونستم ....
                            راستی تو خود سایت چطور میشه فایلی رو دانلود کرد؟
                            ذکات علم یاد دادنه ....

                            دیدگاه


                              #29
                              پاسخ : مشکل اساس با سون سگمنت بزرگ

                              سلام
                              این دیگخ چیه؟
                              flash char arry[4]={0X0C,0X0A,0X06};
                              شماتیک یادت رفته مهندس. برنامه خال به دردم نمی خوره :NO:
                              بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                              اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                              دیدگاه


                                #30
                                پاسخ : مشکل اساس با سون سگمنت بزرگ

                                سلام
                                ببخشید یادم رفته بود :redface:

                                http://www.4shared.com/file/92826056/fec657d6/test_segment.html


                                گفتم که یکم برنامرو تغیر دادم(میدونم ناشیانه است ) تو برنامه( قبلی چون که 7 سگمنتا کاتد مشترک بودن )
                                تو هر وقفه ای که اتفاق میفتاد دوتا پورتا 0 ویکیشون 1 میشد که مشکل بوجود میومد این شد که اینو نوشتم

                                کد:
                                [left]flash char arry[4]={0X0C,0X0A,0X06};
                                [/left]
                                یعنی تو وقفه اول B1 و(1100) تو وقفه دوم B2 و(1010)وتو وقفه سوم هم B3 روشن بشه من با 7segment امتحان کردم اعدادو نشون میداد
                                بدون اینکه عددا با هم قاطی بشن ولی نمیشه اروم اروم عددارو اضافه کرد مدت زمان تایمرو هم کم کردم چشمک زدنش بشتر شدولی بازم
                                همون مشکلو داره؟؟؟

                                ذکات علم یاد دادنه ....

                                دیدگاه

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