PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : درخواست راهنمایی برای برنامه فلشر



ajax007
08-12-2012, 20:20
با سلام
من میخواستم یه فلاشر درست کنم که زمانی که روشن میشه تمام افکت هایی براش نوشتم رو از داخل یک حلقه اجرا کنه و یک کلید فشاری هم باشه که موقع عمل به زیر برنامه هایی که جدا تعریف کردم پرش کنه و افکت عوض بشه و تازمان تحریک کلید داخل همون حلقه تکرار بشه (البته من تاقسمت پرش به زیر برنامه 1 رو با وقفه خارجی نوشتم ولی برای پرش به زیر برنامه 2 و 3تاn مشکل دارم لطفا راهنمایی کنید.
با تشکر

naeimian
08-12-2012, 21:03
میت.نی داخل وقفه اولت یک متغییر قرار بدی و بر اساس اون شرط بذاری
مثلا با هر بار وارد شدن به وقفه یک متغیر یک واحد افزایش پیدا کنه

Edison
10-12-2012, 20:27
با سلام
من میخواستم یه فلاشر درست کنم که زمانی که روشن میشه تمام افکت هایی براش نوشتم رو از داخل یک حلقه اجرا کنه و یک کلید فشاری هم باشه که موقع عمل به زیر برنامه هایی که جدا تعریف کردم پرش کنه و افکت عوض بشه و تازمان تحریک کلید داخل همون حلقه تکرار بشه (البته من تاقسمت پرش به زیر برنامه 1 رو با وقفه خارجی توی بسکام نوشتم ولی برای پرش به زیر برنامه 2 و 3تاn مشکل دارم لطفا راهنمایی کنید.
با تشکر

سلام رفیق لینک زیر پست شماره ۱۱۵۶ بهت کمک میکنه
You can see links before reply

ajax007
17-12-2012, 13:27
Dim A As Byte


Enable Interrupts
Enable Int0
Config Int0 = Rising
On Int0 Main0
goto main1
Main0:
Incr A
Select Case A


Case Is = 0
Goto Main1


Case Is = 1
Cls
Locate 1 , 4
Lcd "1"
Goto Main2

Case Is = 2
Cls
Locate 1 , 4
Lcd "2"
Goto Main3

End Select
Return


Main1:
Set Portd.0
Waitms 500
Reset Portd.0
Waitms 500
Goto Main1


Main2:
Set Portd.1
Waitms 500
Reset Portd.1
Waitms 500
Goto Main2

Main3:
Set Portd.4
Waitms 500
Reset Portd.4
Waitms 500
Goto Main3

کدهای بالا برنامه ای که من نوشتم مشکل پرش به main2 ,3 که انجام نمیشه
اگر امکان داره راهنمایی بفرمایید

ali_h
17-12-2012, 20:18
سلام،
اولاً یه توصیه اکید : به هیچ عنوان در برنامه نویسی از Goto استفاده نکنید!!!

دوماً برنامه برنامه نیاز به تصحیح زیادی داره سر فرصت که تصحیحش کردم میذارمش همینجا

Doloop
17-12-2012, 20:55
Main1: Set Portd.0 Waitms 500 Reset Portd.0 Waitms 500 Goto Main1


سلام مهندس این برنامه هیچوقت از main1 خارج نمیشه
چون اخرین دستور main1 یعنی دوباره پرش کن به main1 پس همین جا درجا میزنه
من برای این جور برنامه ها از دستور gosub استفاده میکنم (برای دونستن جزئیات به help مراجعه کنید)
دقیقا main2 و main3 هم همینطوری هستن و اگه برنامه داخل این قسمتها بشه دیگه خارج نمیشه مگر ریست میکرو

ajax007
17-12-2012, 22:13
سلام مهندس این برنامه هیچوقت از main1 خارج نمیشه
چون اخرین دستور main1 یعنی دوباره پرش کن به main1 پس همین جا درجا میزنه
من برای این جور برنامه ها از دستور gosub استفاده میکنم (برای دونستن جزئیات به help مراجعه کنید)
دقیقا main2 و main3 هم همینطوری هستن و اگه برنامه داخل این قسمتها بشه دیگه خارج نمیشه مگر ریست میکرو
سلام نمیشه کاری کرد که با تحریک کلید بلافاصله از لیبل خارج بشه و به یک لیبل دیگه پرش کنه ؟

Doloop
17-12-2012, 22:36
راستی برنامه شما end هم نداشت (پایان برنامه)
به این صورت تعریف کنید



main:
do
set a
for b=0 to 1500
if key=1 then
goto main1
endif
next
reset a
for b=0 to 1500
if key=1 then
goto main1
endif
next
loop
return

اگه هر main رو به این صورت تعریف کنی و داخل if بگی اگر کلید فشار داده شد پرش کن به main بعدی
حلقه for برای ایجاد تاخیره و البته هر دور که تکرار میشه کلید رو چک میکنه تا هرلحظه فشار داده شد پرش کنه :wink:

ajax007
17-12-2012, 23:00
با سلام
مشکلی که هست طولانی بودن کدها داخل هر main (برای کم شدن کد توی سایت به اینصورت نوشتم)
نمیشه با وقفه خارجی این کار رو انجام داد؟ باتشکر

ajax007
18-12-2012, 21:24
یعنی راه دیگه ای نداره؟

Doloop
18-12-2012, 21:39
مشکلی که هست طولانی بودن کدها داخل هر main
مشکلش چیه ؟
حجمشه ؟!!! ببینید با یک main چه مقدار حجم برنامه میشه (خیلی کم)
ولی خوب منم قبول دارم اوصولیش با وقفه هست
و برای وقفه هم مثال توی نت زیاده حتما سرچ کنید... :wink:

ajax007
19-12-2012, 00:26
سلام رفیق لینک زیر پست شماره ۱۱۵۶ بهت کمک میکنه
ساخت تابلوی led ثابت - صفحه 116 - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

با سلام ببخشید به چه صورت میشه لین برنامه رو توی بسکام نوشت؟

Doloop
19-12-2012, 13:11
سلام مهندس منظور من از جستجو فقط توی این سایت نبود...!!!:(
اگه توی گوگل میسرچیدید حتما پیدا میشد (حتی فارسیش)

اینو من پیدا کردم خیلی خوب توضیح داده حتی شماتیک و نمونه برنامه هم برای وقفه داره
منبع هم داخل فایل قید شده

موفق باشید ... :wink:

ajax007
19-12-2012, 19:16
سلام مهندس منظور من از جستجو فقط توی این سایت نبود...!!!:(
اگه توی گوگل میسرچیدید حتما پیدا میشد (حتی فارسیش)

اینو من پیدا کردم خیلی خوب توضیح داده حتی شماتیک و نمونه برنامه هم برای وقفه داره
منبع هم داخل فایل قید شده

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

Doloop
20-12-2012, 23:36
سلام مهندس اینم یه برنامه با وقفه

من فقط در حدی نوشتم که ارور نده , شما تست کن جواب رو اینجا قرار بده :wink: