سلام. من در برنامه نویسی با بسکام به مشکل برخوردم کسی میتواند مرا راهنمایی کند.چطور می توان از طریق یک پین برنامه ای را متوقف کردکه با فشار دادن همان پین ورودی کاری کرد که برنامه از همان جای که متوقف شده به کارش ادامه داد .نه اینکه بیاید واز اول کار را شوع کند
اطلاعیه
Collapse
No announcement yet.
برنامه نویسی با Bascom
Collapse
X
-
پاسخ : برنامه نویسی با Bascom
به سادگی الان براتون برنامه شو می نویسم :applause:
اول از همه اینو اول برنامه بزار
کد:declare sub A1 declara sub A2 Config Debounce = 40
debounce pinx.x , 0 , subrotin
مثلا اونو توی یک زیر برنامه بنویس
کد:main1: do Debounce Pinb.2 , 0 , A1 loop main2:
کد:sub A1: do Debounce Pinb.2 , 0 , A2 loop end sub A1 sub A2: goto main2 end sub A2
sigpic
-
پاسخ : برنامه نویسی با Bascom
با تشکر من زیاد متوجه نشدم .این چیزی که شما گفتید را من توی برنامه زیر پیاده کردم ولی نتیجه اون جوری که میخواستم نشد
$regfile = "m16def.dat"
$crystal = 8000000
Config Portb = Input
Config Portd = Output
Config Debounce = 40
Dim D As Integer
Declare Sub A1
Declare Sub A2
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , _
Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5
Main1:
Do
Debounce Pinb.2 , 0 , A1
Loop
Main2:
Do
d=0
Set Portd.2
Cls
Lcd D
Waitms 50
reset portd.2
D = D + 1
Loop
sub A1:
Do
Debounce Pinb.2 , 0 , A2
Loop
End Sub A1
Sub A2:
Goto Main2
End Sub A2
که به احتمال زیاد یه جای اشتباه دارم ولی اصل برنامه این است که .با دوتا کلید به چند تاخروجی فرمان داده میشه مثلا با pinb.0 به خروجی portd.2 دستور داده میشه led را روشن کند وروی lcd شمارش از 0به بعد را نمایش دهد.حال به فرض موقعی که شمارش lcd به 20 رسیده با ( pinb.1) یعنی یک پین دیگر می خواهیم برنامه متوقف شود.حال با فشار دادن ) pinb.1 ( میخواهیم کار قبلی را از لحظه شمارش ونمایش عدد 20 روی lcd ادامه دهد
دیدگاه
-
پاسخ : برنامه نویسی با Bascom
خوب من برنامه ای رو که نوشتم برای توقف و خواندن یک کلیده شما مدار + تمام کاری رو که می خوای انجام بدی بزار تا راهنمایی کنم.
اما اول یکم توضیحات راجع به برنامه ها :
در راجع به تو ضیحات دستوراتی که نوشتم باید بگم که دستور config debounce برای گرفتن لرزش بانسینگ و نویز کلید هست و دستور declare مغرفی یک زیر برنامه
اول شما باید برنامه ات رو بنویسی و هنگامی که می خواهی متوقف شود برنامه وارد حلقه main1 شده و دائما کلید را می خواند و کار دیگری انجام نمی دهد و هنگامی که کلید زده شود زیر برنامه A1 اجرا می شود . و در این زیر برنامه اول شما باید دستورات موردن نظر رو که قصد دارید با زدن کلید بار اول انجام شود رو بنویسید و بعد دستور Debounce Pinb.2 , 0 , A2 تا کلید را بخواند و می توان تمام این دستورات داخل زیر برنامه را در حلقه تکرار نوشت. و هنگامی که کلید دوباره زده می شود به سراغ زیر برنامه A2 رفته و آنرا اجرا می نماید.
اما در برنامه شما :
ابتدا برنامه وارد حلقه شده و کلید را میخواند
هنگامی که کلید زده شود زیر برنامه A1 اجرا شده و دوباره کلید خوانده می شود و با زدن کلید به main2 رفته و دستورات آنرا اجرا می کند.
اما چیزی که شما نیاز دارید این نیست پس تمام هدف + فایل پروتئس مدار رو قرار دهید تا بیشتر راهنمایی کنم.
sigpic
دیدگاه
دیدگاه