سلام من میخام برنامه ایی بنویسم که وقتی شرط برقرار شد پین مثلا 1=portc.3 را یک کند و یک بماند تا من بهش دستور بدم این پین صفر بشه البته در if مورد نظر حالا نمیدونم چیکارش کنم؟؟؟؟؟؟
If A > 2 Then
portc.3 = 1
End If
سلام من میخام برنامه ایی بنویسم که وقتی شرط برقرار شد پین مثلا 1=portc.3 را یک کند و یک بماند تا من بهش دستور بدم این پین صفر بشه البته در if مورد نظر حالا نمیدونم چیکارش کنم؟؟؟؟؟؟
If A > 2 Then
portc.3 = 1
End If
سلام
الان در این برنامه ای که نوشتید، با برقراری شرط، پورت مورد نظر 1 شده و 1 می ماند. اگر میخواید با یک شرط دیگه پورت 0 بشه، هم میتونید از یک دستور if جدا استفاده کنید و هم میتونید از دستور elseif در همون if قبلی استفاده کنید.
آره ولی وقتی این برنامه درون لوپ باشد تا زمانی که شرط برقرار است خروجی یک میمونه اما چون بعد از پایان حلقه دوباره میکرو شرط چک میکند دیگر شرط برقرار نیست و خروجی صفر میشه من میخام اینجا یک بمونه تا خودم با یه شرط دیگه صفرش کنم
متوجه منظور شما نشدم متاسفانه
منظورم اینکه مثلا در برنامه بالا A یک لحظه چند میلی ثانیه ای بزرگتر از دو شده و پین c.1 یک میکنه لحظه بعد کوچکتر از دو است و چون شرط برقرار نیست پین c.1 صفر میشه
از این استفاده کن:
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کیلو به مثبت پنج وصل می شود ) یا رله شما دیود دمپر نداره به مدارتون شوک وارد میکنه (نویز حامل برگشتی ولتاژ معکوس رله ) و یا ......
ویرایش توسط ssmqqmss : 16-09-2016 در ساعت 00:05