اطلاعیه

Collapse
No announcement yet.

یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

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

    #16
    پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

    نوشته اصلی توسط hamidelectroniic
    توی کدی که قرار دادید return نوشتید
    خخخخخخخ ... آهان ... این رو میگید ... یه لحظه قلبم ایست کرد ... :mrgreen:
    این برای زیر برنامه وقفه یک ثانیه هست ...
    هر یک ثانیه یک بار برنامه به این زیر برنامه میرود و با دستور return از این زیر برنامه خارج میشود ... در حقیقت زیر برنامه که نمیشه بگی ...
    یه نوع برچسب هست و با رسیدن موقع وقفه یک ثانیه ای به این برچسب پرش میکند ...
    شما کاری با اون قسمت زیر برنامه نداشته باشید ...
    برنامه خودتون رو در do و Loop بنویسید ...
    موفق باشید
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #17
      پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

      ممنون
      راستی فرق این آی سی های ATMEGA8 چیه که چندین نوع تو بازار هستند؟
      مثلا ATMEGA8A-PU تایوانی با ATMEGA8L-8PU و با ATMEGA8L-DIP چه فرقی دارند؟
      کدومشون با کیفیته؟

      دیدگاه


        #18
        پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

        نوشته اصلی توسط hamidelectroniic
        ممنون
        راستی فرق این آی سی های ATMEGA8 چیه که چندین نوع تو بازار هستند؟
        مثلا ATMEGA8A-PU تایوانی با ATMEGA8L-8PU و با ATMEGA8L-DIP چه فرقی دارند؟
        کدومشون با کیفیته؟
        روی بردبرد میخواین کار کنید یا روی برد ؟؟
        اگر برد هست کدوم بسته میخواین ؟؟ DIP یا SMD ؟؟

        اضافه شده در تاریخ :
        این رو نگاه کنید
        دیگه تا آخرش میفهمید ...
        سوالی بود در خدمتم
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


          #19
          پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان &#1

          SMD نمیخوام
          اول روی برد برد تست میکنم بعد مدار طراحی میکنم
          این 3 تایی هم که نوشتم SMD نیستند (البته شاید SMD هم داشته باشن) هر سه هم 28 پایه هستند
          شکل همشون یکی هستند اما اسمهاشون فرق دارند حالا چه فرقی دارند نمیدونم و کدوم بهتر و با کیفیته هم نمیدونم

          دیدگاه


            #20
            پاسخ : پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان 

            نوشته اصلی توسط hamidelectroniic
            SMD نمیخوام
            اول روی برد برد تست میکنم بعد مدار طراحی میکنم
            این 3 تایی هم که نوشتم SMD نیستند (البته شاید SMD هم داشته باشن) هر سه هم 28 پایه هستند
            شکل همشون یکی هستند اما اسمهاشون فرق دارند حالا چه فرقی دارند نمیدونم و کدوم بهتر و با کیفیته هم نمیدونم
            شما برو تو بازار بگو میکروی ATmega8A میخوام ... حتما سری A باشه ...
            نداشت هم مساله ای نداره ... چون شما میخواین با 8 مگاهرتز کار کنید ...
            اگر گفتند SMD میخوای یا DIP ؟؟ میگید DIP باشه ...
            معمولا PU هست تو بازار ... محدوده دماشون فرق میکنه ...
            کریستال ساعت هم فراموش نشه ...
            موفق باشید
            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
            معرفی نرم افزار Codewizard PWM
            با من بیشتر آشنا شوید

            دیدگاه


              #21
              پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

              :applause:
              آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

              116 کتابخانه مورد نیاز برای Altium Designer

              از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

              دیدگاه


                #22
                پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                سلام دوباره
                کد که با استفاده از کریستال ساعت قرار دادید درست کار میکنه اما یک مشکل داره اونم اینه وقتی led یا همون Portb.0 یک میکنه 5 ولت میده اما وقتی 0 میکنه 2.5 ولت میده
                مشکل از کجاست به نظرتون؟

                دیدگاه


                  #23
                  پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                  نوشته اصلی توسط hamidelectroniic
                  سلام دوباره
                  کد که با استفاده از کریستال ساعت قرار دادید درست کار میکنه اما یک مشکل داره اونم اینه وقتی led یا همون Portb.0 یک میکنه 5 ولت میده اما وقتی 0 میکنه 2.5 ولت میده
                  مشکل از کجاست به نظرتون؟
                  درود حمید جان
                  هیچ چیزی نباید سر راه PORTB.0 باشه حتی پروگرامر !!! یا LED ...
                  این رو تست کن ببین چطوریه ...
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #24
                    پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                    چیزی سر راهش نیست اما میخوام به یک ترانزیستور وصل کنم خروجی رو که 60 ثانیه یک یا همون 5 ولت بده به ترانزیستور و 90 ثانیه 0 یا هون صفر ولت البته 5 ولت با مقاومت میدم به ترانزیستور
                    اما هنوز ترانزیستور نزاشتم با مولتی متر تست میکنم وقتی یک هست 5 ولت میده و وقتی 0 هست 2.5 ولت میده

                    دیدگاه


                      #25
                      پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                      وقتی کد Ddrb = 1 بر میدارم مشکل حل میشه
                      این کد برای چی هستش؟ لازمه؟

                      دیدگاه


                        #26
                        پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                        نوشته اصلی توسط hamidelectroniic
                        وقتی کد Ddrb = 1 بر میدارم مشکل حل میشه
                        این کد برای چی هستش؟ لازمه؟
                        این کد پورت b.0 رو خروجی میکنه ...
                        اگر این کد را پاک کنید تمام پورت B ورودی میشوند و زمانی که دستور PORTB.0=1 را بدهید یعنی مقاومت Pullup داخلی پورت b.0 فعال بشه
                        و زمانی که بگویید PORTB.0=0 یعنی پایه آزاد باشه (pulllup داخلی غیر فعال)
                        میشه کدتون رو کامل برام کپی پست کنید ...
                        ممنون
                        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                        معرفی نرم افزار Codewizard PWM
                        با من بیشتر آشنا شوید

                        دیدگاه


                          #27
                          پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان

                          اینم کد:
                          کد:
                          $regfile = "m8def.dat"
                          $crystal = 8000000
                          $hwstack = 50
                          $swstack = 50
                          $framesize = 50
                          
                          Config Pinc.0 = Input
                          Config Portb = Output
                          Config Portd.6 = Output
                          Led1 Alias Portb.0
                          Led2 Alias Portb.1
                          Rel1 Alias Portb.2
                          Buz Alias Portd.6
                          
                          Config Adc = Single , Prescaler = Auto , Reference = Avcc
                          Stop Adc
                          Start Adc
                          Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5
                          Config Lcd = 16 * 2
                          
                          Config Timer2 = Timer , Async = On , Prescale = 128     'Timer
                          On Timer2 Timer_1s                     'Timer
                          Enable Timer2                        'Timer
                          Enable Interrupts                      'Timer
                          
                          Cursor Off
                          Ddrb = 1                          'Timer
                          Mq9 Alias Portb.4                      'Timer
                          Dim A As Word , B As Word , On_time As Word , Off_time As Word    'Timer
                          A = 0
                          On_time = 1                         'Timer - (Seconds)
                          Off_time = 1                        'Timer - (Seconds)
                          Off_time = On_time + Off_time                'Timer - (On_time + Off_time) nabayad bozorgtar az 65535 shavad
                          
                          Dim W(10) As Word , I As Byte , Avrage As Long
                          Dim K As Byte,
                          Dim K1 As Byte
                          Reset Rel1
                          Home
                          Waitms 900
                          Cls
                          Locate 1 , 2
                          Lcd "By"
                          Locate 2 , 2
                          Lcd "Hamidelectronic"
                          Wait 3
                          Home
                          Cls
                           Reset Mq9
                           Locate 1 , 4
                           Lcd "Please Wait"
                           Locate 2 , 4
                           Lcd "Senssor Set"
                           For K = 0 To 20 Step 1
                           Toggle Led1
                           Waitms 100
                           Toggle Led2
                           Next K
                           Set Led1
                           Reset Led2
                          Setup2:
                          
                          Do
                            ';;;;;;
                            '
                            ';;;;;;
                            '
                            ';;;;;;
                            'this is my code
                            ';;;;;;
                            '
                            ';;;;;;
                            '
                            '
                          Loop
                          
                          End
                          Timer_1s:
                            Incr A
                            If A = On_time Then Reset Mq9
                            If A = Off_time Then
                             Set Mq9
                             A = 0
                            End If
                          Return

                          دیدگاه


                            #28
                            پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                            مشکحل حل کردم
                            من از PORTB.3 استفاده میکردم و بجای DDRB=0 کد DDRB.3=0 گذاشتم حل شد.
                            درسته دیگه؟

                            دیدگاه


                              #29
                              پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                              نوشته اصلی توسط hamidelectroniic
                              اینم کد:
                              کد:
                              $regfile = "m8def.dat"
                              $crystal = 8000000
                              $hwstack = 50
                              $swstack = 50
                              $framesize = 50
                              
                              Config Pinc.0 = Input
                              Config Portb = Output
                              Config Portd.6 = Output
                              Led1 Alias Portb.0
                              Led2 Alias Portb.1
                              Rel1 Alias Portb.2
                              Buz Alias Portd.6
                              
                              Config Adc = Single , Prescaler = Auto , Reference = Avcc
                              Stop Adc
                              Start Adc
                              Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5
                              Config Lcd = 16 * 2
                              
                              Config Timer2 = Timer , Async = On , Prescale = 128     'Timer
                              On Timer2 Timer_1s                     'Timer
                              Enable Timer2                        'Timer
                              Enable Interrupts                      'Timer
                              
                              Cursor Off
                              Ddrb = 1                          'Timer
                              Mq9 Alias Portb.4                      'Timer
                              Dim A As Word , B As Word , On_time As Word , Off_time As Word    'Timer
                              A = 0
                              On_time = 1                         'Timer - (Seconds)
                              Off_time = 1                        'Timer - (Seconds)
                              Off_time = On_time + Off_time                'Timer - (On_time + Off_time) nabayad bozorgtar az 65535 shavad
                              
                              Dim W(10) As Word , I As Byte , Avrage As Long
                              Dim K As Byte,
                              Dim K1 As Byte
                              Reset Rel1
                              Home
                              Waitms 900
                              Cls
                              Locate 1 , 2
                              Lcd "By"
                              Locate 2 , 2
                              Lcd "Hamidelectronic"
                              Wait 3
                              Home
                              Cls
                               Reset Mq9
                               Locate 1 , 4
                               Lcd "Please Wait"
                               Locate 2 , 4
                               Lcd "Senssor Set"
                               For K = 0 To 20 Step 1
                               Toggle Led1
                               Waitms 100
                               Toggle Led2
                               Next K
                               Set Led1
                               Reset Led2
                              Setup2:
                              
                              Do
                                ';;;;;;
                                '
                                ';;;;;;
                                '
                                ';;;;;;
                                'this is my code
                                ';;;;;;
                                '
                                ';;;;;;
                                '
                                '
                              Loop
                              
                              End
                              Timer_1s:
                                Incr A
                                If A = On_time Then Reset Mq9
                                If A = Off_time Then
                                 Set Mq9
                                 A = 0
                                End If
                              Return
                              نوشته اصلی توسط hamidelectroniic
                              مشکحل حل کردم
                              من از PORTB.3 استفاده میکردم و بجای DDRB=0 کد DDRB.3=0 گذاشتم حل شد.
                              درسته دیگه؟
                              سلام
                              ببخشید دیر کردم
                              حالا فهمیدم چیکار کردی
                              خط DDRB=1 رو پاک کن درست میشه ...
                              میشه اون چیزی که خودتون میخاین
                              شما اون بالا گفتید کل پورت b برابر خروجی بشه ...
                              در صورتی که من بعدش گفتم تنها پورت B.0 خروجی بشه ...
                              پس با دستور DDRB=1 پورت B.3 ورودی میشه و با دستور set Mq9 تنها پول پ اون فعال میشه و با دستور reset Mq9 ورودی پایه آزاد میشه...
                              پس لطفا خط DDRB=1 را پاک کنید ...

                              موفق باشید
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه


                                #30
                                پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان مشخص بدون ایجاد وقفه در بقیه...

                                سلام مهندس اسدی
                                من ببجز برنامه شما از دستور sound برای بازر استفاده کردم
                                الان مشکل اینه هر وقت دستور sound اجرا میشه تایمر زمانش بیشتر میشه
                                ممنون میشم راهمایی کنید.
                                راستی یک سوال دیگه برای اون کریستال ساعت باید فیوز بیت هنگام پروگرام کردن تنظیم بشه؟
                                با تشکر

                                دیدگاه

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