اطلاعیه

Collapse
No announcement yet.

استفاده از ADC

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

    استفاده از ADC

    سلام من دارم با Atmeaga 32 کار می کنم ولی به دلیل اتصال چیزهای مختلف مثل چندین سنسور و LCD و غیره پین کم آوردم!
    در ضمن توی پروژم مجبورم ADC هم داتشته باشم اما فقط یک دونه!
    حالا سوالم اینجاست که با وجود اینکه در کدویژن ADC رو فعال کردم میشه از سایر پایه های ADC به عنوان پورت های ورودی و خروجی استفاده کرد؟(در عمل روی برد بورد که بستم جواب داد ولی چون مدار آنالوگ میکرو خیلی حساسه سوال اصلی من اینجاست که اگر از سایر پایه ها به عنوان ورودی خروجی استفاده کنم در دراز مدت قسمت مبدل آنالوگ میکرو دچار مشکل نمیشه؟)
    لطفا برای استفاده ی بهینه از پین ها راهکار ندید مثل مالتی پلکسر! من فقط می خوام بدونم پایه هایی که ADC براشون فعال شده ولی در عمل همون کار ورودی خروجی معمولیشون رو هم می تونن انجام بدن در دراز مدت هم زنده می مونن یا نه؟

    #2
    پاسخ : استفاده از ADC

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

    دیدگاه


      #3
      پاسخ : استفاده از ADC

      سلام
      مشکلی پیش نمیاد من در مدارات زیادی از این پایه ها به عنواو خروجی یا ورودی استفاده کردم
      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

      دیدگاه


        #4
        پاسخ : استفاده از ADC

        من کد زیر رو نوشتم و پایه ی مثبت مقایسه کننده رو به VCC و پایه ی منفی رو به GND دادم. قاعدتا چون مثیت از منفی در این شرایط بیش تره باید 1 بده ولی صفر می ده. حتی جای پایه ها رو هم که عوض می کنم بازم 0 می ده. مشکل کجاست؟


        if(ACO==1)
        lcd_puts("1"
        else
        lcd_puts("0"
        delay_ms(10);

        دیدگاه


          #5
          پاسخ : استفاده از ADC

          جوابش رو پیدا کردم
          در برنامه نویسی نمی تونید بنویسید ACO بلکه باید بنویسید ACSR.5 و کد درست و کامل به شکل زیره:
          while (1)
          {
          lcd_clear();
          if(ACSR.5==1)
          lcd_puts("1"
          else
          lcd_puts("0"
          delay_ms(10);

          }

          دیدگاه

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