سلام من میخام برنامه ایی بنویسم که وقتی شرط برقرار شد پین مثلا 1=portc.3 را یک کند و یک بماند تا من بهش دستور بدم این پین صفر بشه البته در if مورد نظر حالا نمیدونم چیکارش کنم؟؟؟؟؟؟
If A > 2 Then
portc.3 = 1
End If:sa:
نمایش نسخه قابل چاپ
سلام من میخام برنامه ایی بنویسم که وقتی شرط برقرار شد پین مثلا 1=portc.3 را یک کند و یک بماند تا من بهش دستور بدم این پین صفر بشه البته در if مورد نظر حالا نمیدونم چیکارش کنم؟؟؟؟؟؟
If A > 2 Then
portc.3 = 1
End If:sa:
سلام
الان در این برنامه ای که نوشتید، با برقراری شرط، پورت مورد نظر 1 شده و 1 می ماند. اگر میخواید با یک شرط دیگه پورت 0 بشه، هم میتونید از یک دستور if جدا استفاده کنید و هم میتونید از دستور elseif در همون if قبلی استفاده کنید.
آره ولی وقتی این برنامه درون لوپ باشد تا زمانی که شرط برقرار است خروجی یک میمونه اما چون بعد از پایان حلقه دوباره میکرو شرط چک میکند دیگر شرط برقرار نیست و خروجی صفر میشه من میخام اینجا یک بمونه تا خودم با یه شرط دیگه صفرش کنم
متوجه منظور شما نشدم متاسفانه
منظورم اینکه مثلا در برنامه بالا A یک لحظه چند میلی ثانیه ای بزرگتر از دو شده و پین c.1 یک میکنه لحظه بعد کوچکتر از دو است و چون شرط برقرار نیست پین c.1 صفر میشه
خیر اینطور نیست. اگر چند میلی ثانیه شرط برقرار باشه و پورت مورد نظر شما 1 بشه، دیگه تا وقتی که خودتون پورت رو صفر نکنید، دیگه صفر نمیشه. چون شما برای 1 شدن پورت شرط در نظر گرفتید، ولی برای 0 شدنش هیچ شرطی ننوشتید.نقل قول:
از این استفاده کن:
Set portb.1
فرستاده شده از HUAWEI G610-U20ِ من با Tapatalk
dim a as byte
dim b as bit
startval:
b=1
main:
if a>2 and b=1 then portc.3=1
if pinb.0=1 then
portc.3=0
b=0
endif
if pinb.1=1 then b=1
goto main
بخاطر راست چین وچپ چین نتونستم فارسی نویسی رو با کدها توضیح بدم ! تو دستورات بالا در زمان استارت اولیه بی رو یک دادیم مثل یه حافظه اولیه
بعد دستور شما میگه اگر آ از دو بیشتر شد و بی مساوی یک شد پورت فلان روشن
حال با کم شدن متغییر ا پورت روشن باقی می مونه چون برای خاموش شدن به بی هم نیاز داره
حال با شرط دیگه بی رو هم می تونید همراه با پورت صفر کنید یا با شرط های جدا و با شرط های دیگه می تونید بی رو یک کنید تا پورتتون دوباره وابسته به صفر شدن بی شود
توجه برای تکرار حالت ماندگاری پورت هوای بی رو داشته باشین یا با ورودی بی رو یک کنید یا با زمان تعریف شده
نکته اینجاست توی دستور شما شما دستور دیگری ندارید که پورت را صفر کند ! پورت شما برای همیشه با دستور بالا یک می ماند (دستور اولین پست همین صفحه)
اگر کد شما همین باشه و پورت خروجیش صفر شه احتمالا خروجی جریان کشی بالای داره که میکرو ریست میکنه یا پایه ریست شما های نشده ( پایه ریست با یک مقاومت 10کیلو به مثبت پنج وصل می شود ) یا رله شما دیود دمپر نداره به مدارتون شوک وارد میکنه (نویز حامل برگشتی ولتاژ معکوس رله ) و یا ......