اطلاعیه

Collapse
No announcement yet.

ارسال داده به نصف پورت c در اتمگا 32

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

    ارسال داده به نصف پورت c در اتمگا 32

    سلام

    من اتمگا 32 را به ds1307 وصل کردم . مشکلی ندارم فقط من ds رو به پوررت c 6 , c 7 وصل کردم . ازبقیه پورتم برای ورودی لچ استفاده کردم . وقتی می خوام واسه لچم داده ارسال کنم چون مجبورم بنویسم :
    کد:
    portc=&h02

    برای ds اختلال ایجاد میشه . می خوام بدونم میشه بگم به پورت های c 1 تا c 5 داده ارسال کنه و به بقیه کاری نداشته باشه ....

    با بسکام کار می کنم .
    دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

    #2
    پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

    سلام

    می تونید از دستور

    SET

    RESET

    استفاده کنید

    دیدگاه


      #3
      پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

      با سلام و درود

      دوست عزیز شما مینونین معادل باینری این کد Hex رو بدست بیارین بعد با set va reset ارسال کنید با مقدار 0 بر روی پایه هایی که نیاز ندارین نیوفته

      البته با توجه به config اول برنامتون نباید بر روی پایه هایی که input تعریف شدن دیتا بیوفته
      زاویه ی نگاهتو عوض کن . . .

      دیدگاه


        #4
        پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

        خوب من دیتا هام اینان .

        کد:
        Data1:
        Data &H06 , &H06 , &H06 , &H06 , &H06 , &H06 , &H06 , &H00
        Data2:
        Data &H16 , &H16 , &H1E , &H1E , &H06 , &H06 , &H06 , &H00
        Data3:
        Data &H15 , &H15 , &H1F , &H1F , &H03 , &H03 , &H03 , &H00
        Data4:
        Data &H1C , &H04 , &H1E , &H1F , &H03 , &H03 , &H03 , &H00
        Data5:
        Data &H04 , &H0A , &H1B , &H11 , &H11 , &H15 , &H0E , &H00
        Data6:
        Data &H06 , &H13 , &H1F , &H1F , &H0C , &H06 , &H03 , &H00
        Data7:
        Data &H11 , &H1B , &H1B , &H1B , &H1B , &H0E , &H04 , &H00
        Data8:
        Data &H04 , &H0E , &H1B , &H1B , &H1B , &H1B , &H11 , &H00
        Data9:
        Data &H0E , &H1B , &H1B , &H1F , &H18 , &H18 , &H18 , &H00
        Data0:
        Data &H00 , &H00 , &H04 , &H0E , &H04 , &H00 , &H00 , &H00

        اگه توجه کنید سه بیت msb همه صفره !

        این همون سه بیته که نئمی خوام ارسال بشه .

        حالا شما میگید بجای همه این دیتا ها بشینم به set و reset نبدیلش کنم ....

        این که خیلی میشه و خیلی هم کار داره ؟؟؟؟
        دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

        دیدگاه


          #5
          پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

          نوشته اصلی توسط starsoheil

          اگه توجه کنید سه بیت msb همه صفره !
          این همون سه بیته که نئمی خوام ارسال بشه .

          عزیزم اگر میخوای اون سه بیت بعد از AND شدن تغییر نکنه، اونها رو یک در نظر بگیریعنی سه بیت MSB همه رو یک بکن[/color][color=red]
          http://imenbazar.com

          دیدگاه


            #6
            پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

            سلام
            مطابق توضیحات خودتون و دوستان اضافه کردن set یا reset حجم زیادی برنامه نویسی برای هر داده یا استفاده از شرطها به ازای هر عمگر 2 سیکل رو به خودش اختصاص می ده و این هم باید مد نظر داشت که ماسک کردن توسط بیتها داده های روی پورتتون رو از بین می بره
            من این تابع رو به ذهنم رسید و نوشتم اما جایی برای تستش نداشتم شما هر داده ای که بخواین رو ارسال کنین ابتدا به این تابع بفرستین این تابع مقدارهای 0 و 1 رو روی پینها قرار می ده(تست کنین ان شالله که مشکلی نباشه)

            کد:
            Sub Change(byval X As Byte)
            Dim Y As Byte
            
            Y = X / 32
            X = X Mod 32
            
            Portc.5 = Y
            
            Y = X / 16
            X = X Mod 16
            
            Portc.4 = Y
            
            Y = X / 8
            X = X Mod 8
            
            Portc.3 = Y
            
            Y = X / 4
            X = X Mod 4
            
            Portc.2 = Y
            
            Y = X / 2
            X = X Mod 2
            
            Portc.1 = Y
            
            End Sub
            ابتدای برنامه هم یادتون نره که این تابع رو declare کنین
            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


              #7
              پاسخ : ارسال داده به نصف پورت c در اتمگاه 32

              اگه با زبان بیسیک کار میکنید از این کد ساده استفاده کنید
              A = Lookup(b , Dat)
              For I = 0 To 5 Step 1
              Portc.i = A
              Shift A , Right
              Next
              اگه هم که با c کار میکنید که دیگه این کارها کاری نداره :mrgreen:
              تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

              دیدگاه


                #8
                پاسخ : ارسال داده به نصف پورت c در اتمگا 32

                فیوز بیت JTAG رو غیر فعال کن.

                دیدگاه

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