اطلاعیه

Collapse
No announcement yet.

کمک در مورد یک برنامه ساده

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

    کمک در مورد یک برنامه ساده

    سلام دوستان من یکم گیج و منگ شدم ؟ من با فیلیپس LPC 2104 به خاطر آسون بودن اون واینکه در محیط پروتئوس شبیه سازی میشه رو انتخاب کردم . حالا من میخوام یک برنامه بنویسم که با زدن کلید LED روشن بشود ، و کار رجیستر های IODIR , IOCLR, IOSET رو هم میدونم حالا جای درگیری من اینجاست که !
    من باید پایه که LED وصل میشه رو خروجی بزارم مثلا پایه P0.2(که LED به آن متصل است) که باید بنویسم IODIR=0x02 حالا باید ورودی رو هم تعریف کنم ؟ چون که دستور IODIR= 0x02 بقیه رجیستر ها صفر در نظر میگیره که یعنی ورودی هم هستند ؟ و نکته دیگه میخوام بگم اگر این پایه P0.0 صفر بشه (که ورودی هست) خروجی که LED بهش وصل هست یک شود(که LED روشن شود) برنامه رو اینطوری نوشتم ولی این رجیستر دست و پا رو میگیره و دستور دیگه ای هم نیست مثل آدم که مانند کد ویژن بهش بگم
    کد:
    #include <LPC210X.H>
    int main(void) {
    IODIR=0x02;
    	if((IODIR=0x00)) {
    		IOSET=0x02;
    	}
    }
    البته شاید به نظر شما سوال یکم خنده دار باشه اما من گیج شدم ؟
    برای تغییر دادن در زندگی اول باید خودم تغییر کنم نه دیگران!
    یک اشتباه جدید در زندگی بهتر از تکرار اشتباه قبلی است .

    #2
    پاسخ : کمک در مورد یک برنامه ساده

    این تایپک ها رو که هیچکی جواب نمیده
    برای تغییر دادن در زندگی اول باید خودم تغییر کنم نه دیگران!
    یک اشتباه جدید در زندگی بهتر از تکرار اشتباه قبلی است .

    دیدگاه


      #3
      پاسخ : کمک در مورد یک برنامه ساده

      نوشته اصلی توسط Fanoudi
      سلام دوستان من یکم گیج و منگ شدم ؟ من با فیلیپس LPC 2104 به خاطر آسون بودن اون واینکه در محیط پروتئوس شبیه سازی میشه رو انتخاب کردم . حالا من میخوام یک برنامه بنویسم که با زدن کلید LED روشن بشود ، و کار رجیستر های IODIR , IOCLR, IOSET رو هم میدونم حالا جای درگیری من اینجاست که !
      من باید پایه که LED وصل میشه رو خروجی بزارم مثلا پایه P0.2(که LED به آن متصل است) که باید بنویسم IODIR=0x02 حالا باید ورودی رو هم تعریف کنم ؟ چون که دستور IODIR= 0x02 بقیه رجیستر ها صفر در نظر میگیره که یعنی ورودی هم هستند ؟ و نکته دیگه میخوام بگم اگر این پایه P0.0 صفر بشه (که ورودی هست) خروجی که LED بهش وصل هست یک شود(که LED روشن شود) برنامه رو اینطوری نوشتم ولی این رجیستر دست و پا رو میگیره و دستور دیگه ای هم نیست مثل آدم که مانند کد ویژن بهش بگم
      سلام
      شما می گید این میکرو را گرفتم چون داخل proteus شبیه سازی کنم شما اگر شبیه سازی کنید می بینید که این برنامه جواب نمی ده این کار را انجام داده اید؟
      شما باید مقدار پایه مربوطه را بخوانید نه جهتش را ، از رجیستر FIOPIN استفاده کنید
      معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
      اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
      آموزش Modelsim

      دیدگاه


        #4
        پاسخ : کمک در مورد یک برنامه ساده

        نوشته اصلی توسط skiboy
        سلام
        شما می گید این میکرو را گرفتم چون داخل proteus شبیه سازی کنم شما اگر شبیه سازی کنید می بینید که این برنامه جواب نمی ده این کار را انجام داده اید؟
        شما باید مقدار پایه مربوطه را بخوانید نه جهتش را ، از رجیستر FIOPIN استفاده کنید
        برنامه رو جواب نگرفتم شما گفتید رجیستر FIOPIN برای خواندن استفاده کنم من در Keil می نویسم اما میگه use on uncleared identifire یعنی نمیشناسه مشکل چی هست ؟
        برای تغییر دادن در زندگی اول باید خودم تغییر کنم نه دیگران!
        یک اشتباه جدید در زندگی بهتر از تکرار اشتباه قبلی است .

        دیدگاه


          #5
          پاسخ : کمک در مورد یک برنامه ساده

          نوشته اصلی توسط Fanoudi
          برنامه رو جواب نگرفتم شما گفتید رجیستر FIOPIN برای خواندن استفاده کنم من در Keil می نویسم اما میگه use on uncleared identifire یعنی نمیشناسه مشکل چی هست ؟
          شما باید مقداری را که می خونید داخل یک متغیر ذخیره کنید بعد ان متغییر را مقایسه کنید مثلا
          a=LPC_GPI0->FIOPIN
          (if(a==10
          {کار دلخواه}
          معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
          اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
          آموزش Modelsim

          دیدگاه


            #6
            پاسخ : کمک در مورد یک برنامه ساده

            نوشته اصلی توسط skiboy
            شما باید مقدار ی راکه می خونید داخل یک متغیر ذخیره کنید بعد ان متغییر را مقایسه کنید مثلا
            a=LPC_GPI0->FIOPIN
            (if(a==10
            {کار دلخواه}
            معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
            اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
            آموزش Modelsim

            دیدگاه


              #7
              پاسخ : کمک در مورد یک برنامه ساده

              سلام
              برای کار با پورتها اول باید IODIR یا FIODIR رو مشخص کنید، که شما این کار رو درست انجام دادید. دوم با IOSET/IOCLR یا معادلِ اون FIOSET/FIOCLR پورتهای خروجی صفر و یک می شن که بازم شما درست انجامش می دید. سوم، ورودی ها رو با IOPIN یا معادلش FIOPIN بخونید.

              دقت کنید که در حالت پیش فرض میکروهای سریِ 2000، استفاده از رجیسترهای مخصوص پین های سریع (یعنی اونهایی که اولش F داره) بی فایده ست. چون باید یه جایی تو PINCON رو تغییر بدید تا بعدش بشه از اونها توی برنامه استفاده کرد.

              من از LPC2103 زیاد استفاده کردم. شما برای ورودی ها از IOPIN استفاده کن، جواب می گیری
              بیایید با Google آشتی کنیم!

              دیدگاه

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