اطلاعیه

Collapse
No announcement yet.

مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

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

    مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

    سلام
    این برنامه من هست

    #include <AT91SAM7X256.H> // AT91SAMT7X256 definitions
    #include <lib_AT91SAM7X256.h>
    #include <delay.h>
    //**********************main function********************************
    int main (void) {
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19);
    (AT91F_PIO_GetInput(AT91C_BASE_PIOB) , AT91C_PIO_PB0);
    AT91F_PIO_CfgPullup(AT91C_BASE_PIOB, AT91C_PIO_PB0);
    //AT91F_PIO_B_RegisterSelection(AT91C_BASE_PIOB, AT91C_PIO_PB0);
    //AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC,AT91C_P IO_PB0);

    while(1){ //loop for ever
    if(!(AT91F_PIO_GetInput( AT91C_BASE_PIOB)& AT91C_PIO_PB0)){
    AT91F_PIO_SetOutput (AT91C_BASE_PIOB, AT91C_PIO_PB19);
    delay_ms(100);
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19);
    delay_ms(100);

    }
    else {
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19);
    }

    } //end while
    }
    /////////////////////////
    اما وقتی پروگرام می کنم led شروع به چشمک زدن می کند و اصلا به hi و low شدن پایه pb.0 توجه نمی کند
    دیتا شیت رو خوندم و گفتم شاید باید در power manage control کلاک رو فعال کنم با اون دو دستوری که می بینید و الان کامنت هست خواستم این کارو بکنم ولی باز نشد
    دیگه هنگ کردم چطور می شه یک پایه رو خوند!!!!
    من در keil 4.01 کد می نویسم
    ممنون
    www.tehranelec.com

    #2
    پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

    //AT91F_PIO_B_RegisterSelection(AT91C_BASE_PIOB, AT91C_PIO_PB0);
    رو نمیخواد

    ولی این رو میخواد:

    کد:
    //AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC,[b]AT91C_BASE_PIOB[/b])
    توجه کنید پارامتر دوم تابع ، رجیستر پورت هست نه پین خاصی.

    در ضمن ،
    (AT91F_PIO_GetInput(AT91C_BASE_PIOB) , AT91C_PIO_PB0);
    اشتباهه ، باید کانفیگ کنید نه get

    دیدگاه


      #3
      پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

      ایا همه پایه ها پیش فرض i/o و ورودی هستند؟
      تو دیتا شیت نوشته بود بعضی پایه ها از همون ابتدا دارای عملکرد جانبی هستند و باید configur شوند ایا این شامل at91sam 7x256 هم میشه؟
      چون نگفته بود کدوم پایه ها
      www.tehranelec.com

      دیدگاه


        #4
        پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

        بعد از ریست ، پایه ها به صورت i/o (پیشفرض) تنظیم میشن.

        دیدگاه


          #5
          پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

          با کمک برنامه 7seg لینک **** مشکل در تعریف پایه at91sam7x256 حل شد
          برنامه ساده زیر رو امتحان کنید
          #include "AT91SAM7X256.h"
          #include "lib_AT91SAM7X256.h"
          #include "delay.h"

          #define key (1<<0) //PA0


          int main ()
          {
          AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
          AT91F_PIO_CfgInput(AT91C_BASE_PIOA, key);
          AT91F_PIO_CfgPullup(AT91C_BASE_PIOA,key);

          AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA3) ;
          AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA3) ;
          while(1)
          {
          if((AT91F_PIO_GetInput(AT91C_BASE_PIOA)& key)==0x00000000)
          {
          AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PIO_PA 3);
          delay_s(2);
          AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA3) ;
          delay_s(2);
          };
          };
          }
          منبع:
          http://farzadsw.persianblog.ir/post/17/

          دیدگاه


            #6
            پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

            :surprised:

            خوب شد آدرس وبلاگ رو گذاشتی ، تازه فهمیدم بعضی ها چقدر خونسرد مطالب وبلاگ بقیه رو بدون اجازه کپی میکنن. :NO:

            دیدگاه


              #7
              پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی

              با احترام به دوست عزیز farzadsw
              اولا نوشتم "با کمک برنامه 7seg" ، نه "کپی" برنامه ، که کافی بود به لینک مراجعه و برنامه ها رو مقایسه کنید که خرج این فقط مراجعه به یک لینک بود ، پیش از این که به راحتی حرف از "کپی بدون اجازه" بزنید
              ثانیا در اصل خط"AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC , 1 << AT91C_ID_PIOA)" از اون برنامه گرفتم که شما این دستور رو بصورت ناقص در همین صفحه آورده بودید
              ثالثا برنامه 7seg لینک، مربوط به راه اندازی سون سگمنت با آرم است ولی برنامه من یک blink ساده .

              دیدگاه


                #8
                پاسخ : مشکل در تعریف پایه at91sam7x256 به عنوان ورودی


                دوست عزیز ، سوء تفاهم پیش اومده ! روی سخن من با شما نبود با صاحب اون وبلاگ بود . :biggrin:
                اون وبلاگ برای من نیست ، من یه وبلاگ دیگه دارم که همون مطالب رو قبلا توش گذاشته بودم . وقتی شما لینک اون وبلاگ کپی کننده رو گذاشتی من تازه فهمیدم که مطالب وبلاگ من عینا (متن ،عکس و حتی لینک!) تو اون وبلاگ کپی شده .
                همین اشاره شما به منبع ("با کمک برنامه 7seg لینک&quot ، کار بسیار پسندیده ای هست و جای بحثی باقی نمیگذاره(کاملا مطابق با GPL هم هست !) .
                مجددا به دلیل گذاشتن لینک اون وبلاگ ، از شما ممنونم . :smile:

                دیدگاه

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