اطلاعیه

Collapse
No announcement yet.

نوشتن روی پورت LPT توسط AVR

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

    نوشتن روی پورت LPT توسط AVR

    سلام

    من یه مدار با AVR درست کرده ام و میخوام به کامپیوتر اطلاعات بدم و اطلاعات بگیرم. دارم با پین های 2 تا 9 (DATA pin) از LPT کار می کنم.

    در موقع خوندن، درست کار میکنه. ولی نمی تونم اطلاعات رو روی پورت بنویسم.

    برای چک کردن پورت هم از اون برنامه معرفی شده توی موضوع های قبلی استفاده میکنم.

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

    لطفا راهنمایی ام کنید. (سریع، لطفا !)

    ...

    #2
    پاسخ : نوشتن روی پورت LPT توسط AVR

    سلام.
    اولا که اینجا نباید تاپیک میزدی.
    اما بعد.
    پورت lpt در حالت spp یا همون standard parallel port که باشه , این هشت پین دیتا فقط خروجی هستند و مقداری رو دریافت نمیکنند.
    شما باید از حالت EPP استفاده کنی.
    کارش فرق نداره.
    فقط به آدرس پورتت 4 واحد اضافه کن.
    اینجوری



    Base + 0 => Data Port(SPP) | Write
    Base + 1 => Status Port(SPP) | Read
    Base + 2 => Control Port(SPP) | Write
    Base + 3 => Address Port(EPP) | Read/Write
    Base + 4 => Data Port(EPP) | Read/Write

    Base هم آدرس پورت سخت افزاری هست
    معمولا 378 هگز هستش.
    الهم عجل لولیک الفرج

    دیدگاه


      #3
      پاسخ : نوشتن روی پورت LPT توسط AVR

      سلام
      شما باید عدد 32 هگز رو روی پورت 379 بریزی تا پورت 378 ورودی بشه.اونوقت هرچی روی پین های دیتا باشه به راحتی خونده میشه
      خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

      دیدگاه


        #4
        پاسخ : نوشتن روی پورت LPT توسط AVR

        [size=10pt]سلام

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

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

        * زمانی که بخوای از یه پین بخونی و روی یه پین بنویسی به مشکل برمیخوری. چون همه بیت های پورت ورودی شده.
        * این مطلب روی هر کامپیوتری درست نیست. من هم نمیدونم چرا. :question: ولی مدلهای مختلف چه PC و چه LapTop هر کدوم یه جوری جواب میدن ؟؟؟؟؟

        حالا هم بعد از کلی سر و کله زدن:angry: با LPT یه روش دیگه پیدا کردم که خیلی راحت میشه از پورت LPT خوند. :applause: :wow:

        شما اگه میخواین یه پین رو بخونین کافیه اون پین رو توسط یه برنامه (مثل VB) صفر کنین. اون وقت مقداری رو که میخونین همونیه که روی پین از بیرون نوشته میشه. :agree: اگر هم میخواین کل 8 تا بیت رو بخونین، خوب کافیه که همه بیت ها رو صفر کنین.

        البته نمیدونم چرا اینجوریه. چون ما برای میکرو بلد بودیم در حالت UP بودن یه پین میشه روش چیزی نوشت. به هر حال این روش آزمایش شده است و جواب هم میده.


        * * * راستی تا یادم نرفته از جناب Iran-PC معذرت خواهی کنم. و بگم که کنار اسم من نوشته " تازه وارد "، یعنی نباید خیلی سخت بگیری که چرا اینجا تاپیک زدم!

        دیدگاه

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