اطلاعیه

Collapse
No announcement yet.

یک سوال ابتدایی از برنامه نویسی c در کدویژن

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

    یک سوال ابتدایی از برنامه نویسی c در کدویژن

    1. چه تفاوتی بین DDRB= 1<<DDB3 و DDRB=1<<PORTB3 هست؟ آیا هر دو درست هستند و پین چهارم را خروجی میکنند؟
    2. مگه رجیستر پورت و DDR مقدار اولیه اش صفر نیست و DDRB= 1<<DDB3 یعنی1 را را به اندازه ی بیت DDB3 که صفر است به چپ شیفت بده که یعنی همان یک درصورتی که من میخوام بیت چهارم را یک کنم! پس اگر DDB4 هم به جای DDB3 بنویسیم فرقی نمی کند؟! اگر مقدار رجیستر DDR را مقدار دهی نکنیم این عملیات شیفت چه معنی می دهند؟؟؟

    #2
    پاسخ : یک سوال ابتدایی از برنامه نویسی c در کدویژن

    سلام دوست عزیز شما اگر هدر میکروتون رو باز کنید یه سری تعریفات اولیه انجام شده که برای راحتی فهم کد ها به کار میره و میتوان معادل عددیشون رو هم قرار داد
    مثلاً DDB0 تا DDB7 هر کدوم معادل عدد مقابلشون هستند همینطور PORTB0 تا PORTB7
    بنابراین کد portb=1<<portb3 یعنی برای پورت b یک رو به اندازه ۳ تا به چپ شیفت بده که یعنی پین سوم رو یک کن همینطور اگر به جای portb3 داشتیم portb4 پین چهارم برابر یک میشد
    همینطور اگه به جای portb3 داشتیم ddb3 باز هم پورت سوم یک میشد
    کلاً portb3 یعنی عدد ۳ و portb4 یعنی عدد ۴ و ddb3 یعنی عدد ۳ و همینطور برای بقیه
    تعریف های زیاد دیگه ای هم برای رجیستر ها داریم
    جدیدترین ویرایش توسط سید رضا باباتبار; ۲۲:۵۳ ۱۳۹۵/۰۵/۲۴.
    [آموزشی] کنترل رله با پیامک توسط sim800l
    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
    [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
    [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
    صفحه اینستاگرام : ecdco_ir

    دیدگاه


      #3
      پاسخ : یک سوال ابتدایی از برنامه نویسی c در کدویژن

      نوشته اصلی توسط reza0506 نمایش پست ها
      سلام دوست عزیز شما اگر هدر میکروتون رو باز کنید یه سری تعریفات اولیه انجام شده که برای راحتی فهم کد ها به کار میره و میتوان معادل عددیشون رو هم قرار داد
      مثلاً DDB0 تا DDB7 هر کدوم معادل عدد مقابلشون هستند همینطور PORTB0 تا PORTB7
      بنابراین کد portb=1<<portb3 یعنی برای پورت b یک رو به اندازه ۳ تا به چپ شیفت بده که یعنی پین سوم رو یک کن همینطور اگر به جای portb3 داشتیم portb4 پین چهارم برابر یک میشد
      همینطور اگه به جای portb3 داشتیم ddb3 باز هم پورت سوم یک میشد
      کلاً portb3 یعنی عدد ۳ و portb4 یعنی عدد ۴ و ddb3 یعنی عدد ۳ و همینطور برای بقیه
      تعریف های زیاد دیگه ای هم برای رجیستر ها داریم
      خیلی ممنون از جوابتون پس یعنی جواب سوال اولی که نوشتم بله هست دیگه؟ تو هدر مگا32 جلوی هر دو عدد نوشته چه ddr و چه port پس یعنی فرقی ندارن؟
      خی

      دیدگاه


        #4
        پاسخ : یک سوال ابتدایی از برنامه نویسی c در کدویژن

        بله جوابش بله هست...
        برای درک بهتر این قضیه برنامه ای که در لینک زیر هست رو دانلود کنید:

        سلام مدتی در این فکر بودم که روشی واسه مقدار دادن به رجیسترها در زبان سی پیدا کنم که هم نیازی به تایپ وقت گیر نداشته باشه و هم از طرفی خوانایی برنامه رو افزایش بده جوری که با یه نگاه به اون خط بشه فهمید کدوم بیت ها از رجیستر مورد نظرمون 1 شده...این شد که سعی کردم یه برنامه با سی شارپ واسه این کار بنویسم که شرحش در ادامه هست...
        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

        www.intelart.ir


        ساخت کنترلر دما PID فازي با AVR [آموزشی]

        دیدگاه

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