ايران ويج

نسخه‌ی کامل: روشن وخاموش کردن پورت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام درود
میخوام دستوری بنویسم با CodeVision که هر موقع کلید زده شد یک led
روی PORTA.7 روشن شود واگه دوباره زده شد خاموش شود ولی اگه کلید بطور مدام نگه داشته شد led خاموش بماند تا کلید را ول کنیم
من مشکلم قسمت دوم cod که کلید نگه میدارم برنامه هی اجرا میشه وled چشمک میزنه
اینم دستوری که نوشتم:

کد php:
#include <mega32.h>
#include <delay.h>
void main(void)
{
PORTA=0x0F;
DDRA=0xF0;
while (
1)
      {
      if(
PINA.0==0)
      {
      
delay_ms(250);
      
PORTA.7=~PORTA.7;
      }

      }

برنامت مشکل داره ،شبیه سازو بزار تا برات بنویسمش
دوست عزیز شما قبل از تابع تاخیر این کد رو وارد کن
while(PINA.0==0);
دوست عزیز دست درد نکنه مشکلم حل شد همون طور که گفته بودی قبل از تابع تاخیر این کد رو وارد کردم
متشکرم.
این کدش :

کد php:
#include <mega32.h>
#include <delay.h>
void main(void)
{
PORTA=0x0F;
DDRA=0xF0;
while (
1)
      {
      if(
PINA.0==0)
      {
      while(
PINA.0==0);
      
delay_ms(250);
      
PORTA.7=~PORTA.7;
      }

      }

داداش این دو خط رو نوشتی اشتباه داری ، برای ورودی باید DDR اون پین 0 باشه.
بعدش باید پین ورودی رو پول آپ یا پول دان کنی ( بنا به نیاز ) که اینجا پول آپ باید بشه.
شبیه ساز و سورس پیوست شد.
داداش منم تو برنامم همین کارو کردم منظورت نفهمیدم
من 4تای PORTA را ورودی قرار داد یعنی از pull up داخلی استفاده کردم و 4 تای بعدی PORTA را خروجی تعریف کردم و درست کار میکنه
اینم کدش :

کد php:
PORTA=0x0F;
DDRA=0xF0
4 تا یا هرچی رو کاری ندارم ، موقع که عملی میبندی با اولین کلیک جریان زیادی از پین کشیده میشه و پین میسوزه ، اصولیش اونیه که من استفاده کردم
دست درد نکنه مشکلم حل شد