اطلاعیه

Collapse
No announcement yet.

سوالات ساده از برنامه نویسی CووووB

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

    سوالات ساده از برنامه نویسی CووووB

    میخوام از کدویژن برنامه بریزم رو ای سی تو پروتیئوس خوب بلد نیستم تو بسکام میخوام بریزم f7رو میزنم اما تو کد ویژن بلد نیستم یه سوال دیگه داشتم اونم اینه که کد ویژن ویزارد داره اگه داره کجاست چه طوری باید استافاده کرد؟ :question:

    #2
    پاسخ : سوالات ساده از برنامه ها avr ,arm

    یه زره بیشتر توضیح بده.
    ?Why not

    دیدگاه


      #3
      پاسخ : سوالات ساده از برنامه نویسی CووووB

      این برنامه ایی که من نوشتم اشکالی داخلش هست؟
      بسکام ایراد میگیره ممنونم راهنمایی کنید
      $regfile = "attiny2313.dat"
      $crystal = 8000000

      CONFIG PORTD = INPUT
      CONFIG PORTB = OUTPUT

      IF PIND.2 = 1 THEN
      SET PINB.3

      ELSE IF [PIND.3 = 1 THEN]
      SET PINB.3
      SET PINB.2
      SET PINB.1

      ELSE IF [PIND.4 = 1 THEN]
      SET PINB.3
      SET PINB.2

      ELSE IF [PIND.5 = 1 THEN]
      SET PINB.3
      SET PINB.1

      ELSE
      RESET PORTB

      ENDIF
      جدیدترین ویرایش توسط P.maddah39; ۰۲:۴۵ ۱۴۰۲/۰۵/۱۲.
      دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

      دیدگاه


        #4
        پاسخ : سوالات ساده از برنامه نویسی CووووB

        نوشته اصلی توسط P.maddah39 نمایش پست ها
        این برنامه ایی که من نوشتم اشکالی داخلش هست؟
        بسکام ایراد میگیره ممنونم راهنمایی کنید
        $regfile = "attiny2313.dat"
        $crystal = 8000000

        CONFIG PORTD = INPUT
        CONFIG PORTB = OUTPUT

        IF PIND.2 = 1 THEN
        SET PINB.3

        ELSE IF [PIND.3 = 1 THEN]
        SET PINB.3
        SET PINB.2
        SET PINB.1

        ELSE IF [PIND.4 = 1 THEN]
        SET PINB.3
        SET PINB.2

        ELSE IF [PIND.5 = 1 THEN]
        SET PINB.3
        SET PINB.1

        ELSE
        RESET PORTB

        ENDIF
        سلام دوست عزیز
        اونجاهایی که بولد کردم رو نگاه کنین
        اشتباهی [ هارو بعد از then گذاشتین

        (اگر هم مشکلتون رفع نشد ببینید پورت هاتون درسته؟ مطمئن شین که پورت D و B رو داره میکروتون)
        موفق باشی
        جدیدترین ویرایش توسط electromohammad; ۰۸:۵۴ ۱۴۰۲/۰۵/۱۲. دلیل: جلوگیری از اسپم
        همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
        لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
        تایپیک های من:
        حل تمام مشکلات atmega128a (eca.ir)
        آموزش کار با سایت (eca.ir)

        دیدگاه


          #5
          پاسخ : سوالات ساده از برنامه نویسی CووووB

          نوشته اصلی توسط electromohammad نمایش پست ها
          سلام دوست عزیز
          اونجاهایی که بولد کردم رو نگاه کنین
          اشتباهی [ هارو بعد از then گذاشتین

          (اگر هم مشکلتون رفع نشد ببینید پورت هاتون درسته؟ مطمئن شین که پورت D و B رو داره میکروتون)
          موفق باشی
          مشکل بعد از کلی بررسی حل شد. برنامه به صورت زیر تغییر کرد

          $regfile = "attiny2313.dat"
          $crystal = 8000000

          CONFIG PORTD = INPUT
          CONFIG PORTB = OUTPUT

          IF PIND.2 = 1 THEN
          SET PINB.3
          ENDIF

          IF PIND.3 = 1 THEN
          SET PINB.3
          SET PINB.2
          SET PINB.1
          ENDIF

          IF PIND.4 = 1 THEN
          SET PINB.3
          SET PINB.2
          ENDIF

          IF PIND.5 = 1 THEN
          SET PINB.3
          SET PINB.1
          ENDIF

          IF PORTD = 0 THEN
          RESET PORTB
          ENDIF




          END

          ولی هر جا خوندم همون صورت اول رو توضیح داده بودن
          جدیدترین ویرایش توسط P.maddah39; ۲۲:۳۵ ۱۴۰۲/۰۵/۱۳.
          دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

          دیدگاه


            #6
            سلام
            کسی برنامه نویسی C بلده به سوال من جواب بده
            داشتم کتاب میخوندم با دستور زبان C مواجه شدم نمیدونم معنیش چیه؟

            DDRB = 0x01
            و یا
            DDRB=0x02
            جدیدترین ویرایش توسط P.maddah39; ۱۶:۰۰ ۱۴۰۲/۰۷/۰۱.
            دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

            دیدگاه


              #7
              سلام دوست عزیز
              اینا مقادیریه که داخل رجیستر مربوط به اینکه کدوم یک از پایه های پورت B ورودی یا خروجی باشن ریخته میشه
              این (0x02) هم مقدار هگزادسیمال هستش که برابر با(0b0000 0010) هستش
              (یعنی پایه ی دوم خروجیه و میتونی کنترلش کنی. بقیه ورودی هستن)

              شما بهتره در مورد رجیستر های میکرو کنترلر AVR تحقیق کنین
              همچنین اطلاعاتتون رو در مورد هگزادسیمال، باینری، اسکی (ASCII) بالا ببرین (به کارتون میاد)
              موفق باشین و شاد و پیروز
              همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
              لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
              تایپیک های من:
              حل تمام مشکلات atmega128a (eca.ir)
              آموزش کار با سایت (eca.ir)

              دیدگاه


                #8
                نوشته اصلی توسط electromohammad نمایش پست ها
                سلام دوست عزیز
                اینا مقادیریه که داخل رجیستر مربوط به اینکه کدوم یک از پایه های پورت B ورودی یا خروجی باشن ریخته میشه
                این (0x02) هم مقدار هگزادسیمال هستش که برابر با(0b0000 0010) هستش
                (یعنی پایه ی دوم خروجیه و میتونی کنترلش کنی. بقیه ورودی هستن)

                شما بهتره در مورد رجیستر های میکرو کنترلر AVR تحقیق کنین
                همچنین اطلاعاتتون رو در مورد هگزادسیمال، باینری، اسکی (ASCII) بالا ببرین (به کارتون میاد)
                موفق باشین و شاد و پیروز
                تشکر از راهنمایی شما.
                حالا اگه بخواهیم پایه 2 پورت B به عنوان ورودی باشه باید چی بنویسیم؟
                در حالت کلی DDRB=0X00 و DDRB = 0XFF به عنوان پورت B ورودی و خروجی بود
                جدیدترین ویرایش توسط P.maddah39; ۲۱:۰۲ ۱۴۰۲/۰۷/۰۱.
                دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

                دیدگاه


                  #9
                  باسلام.
                  مقدار Initial برای رجیستر DDRx صفر هست و یعنی وقتی میکرو ریست میشه همه پایه ها ورودی هستن و نیازی نیست چیزی ست کنید.
                  ولی در حالت کلی برای صفر کردن یک بیت خاص از یک رجیستر از سینتکسی شبیه کد زیر استفاده میشود:
                  کد:
                  DDRB &= ~(1 << DDB1);

                  دیدگاه


                    #10
                    نوشته اصلی توسط P.maddah39 نمایش پست ها

                    تشکر از راهنمایی شما.
                    حالا اگه بخواهیم پایه 2 پورت B به عنوان ورودی باشه باید چی بنویسیم؟
                    در حالت کلی DDRB=0X00 و DDRB = 0XFF به عنوان پورت B ورودی و خروجی بود
                    می تونین از حالت باینری استفاده کنین که ظاهرش واضح تره
                    این شکلی:
                    DDRB = 0b00000010 که این پایه ی دومه (البته خاطرم نیست که از اون وره یا از اینور)( یعنی ممکنه پایه ششم رو خروجی کنه)

                    اونی که شما مدنظرتونه که وسط برنامه کاربرد پایه رو تغییر بدین و تبدیل کنین به ورودی یا خروجی رو باید مثل اونی که دوستمون اون بالا گفتن عمل کنین

                    با کدویژن کار می کنین یا چیز دیگه؟
                    همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
                    لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
                    تایپیک های من:
                    حل تمام مشکلات atmega128a (eca.ir)
                    آموزش کار با سایت (eca.ir)

                    دیدگاه


                      #11
                      نوشته اصلی توسط electromohammad نمایش پست ها

                      می تونین از حالت باینری استفاده کنین که ظاهرش واضح تره
                      این شکلی:
                      DDRB = 0b00000010 که این پایه ی دومه (البته خاطرم نیست که از اون وره یا از اینور)( یعنی ممکنه پایه ششم رو خروجی کنه)

                      اونی که شما مدنظرتونه که وسط برنامه کاربرد پایه رو تغییر بدین و تبدیل کنین به ورودی یا خروجی رو باید مثل اونی که دوستمون اون بالا گفتن عمل کنین

                      با کدویژن کار می کنین یا چیز دیگه؟
                      آره کد ویژن هست. البته بحث بر سر یادگیری هست چون داشتم کتاب رو میخوندم دیدم یه برنامه ای از دستور DDRB = 0X02 استفاده کرده برام سوال شد که بدونم چه مقهومی داره.
                      الان کاملا متوجه شدم.
                      دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

                      دیدگاه

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