با سلام
من یه برنامه برای میکروی مگا 16 نوشتم اما وقتی توی پورتیوس تست کردم درست کار نکرد لطفا برنامه رو بررسی کنید و بگید ایراد برنامه کجاست و به سوالات من جواب بدید با تشکر
توضیحات: سه ورودی A - B - C داریم و سه خروجی A - B - C مشخصه که کدوم ورودی مال کدوم خروجی هست
به ترتیب اول A مهم هست بعد B و بعد C
اگر A وصل باشه دو ورودی دیگه باید قطع باشند
اگر A قطع شد باید B وارد مدار بشه و در هر زمان A برگشت B باید قطع بکنه
اگر هر دو ورودی A - B قطع بودند ورودی C وارد مدار میشه اما در هر زمان یکی از اون دوتا برگشت C قطع میکنه و پستشو تحویل میده
سوالات :
اول : چرا وقتی خروجیم وصل میشه دیگه قطع نمیشه ؟
دوم : چرا وصل شدنشون به اون ترتیبی که میخوام نیست ؟؟؟
لطفا کمک کنید
[img]
[/img]
(۱۲-مهر-۱۳۹۱, ۲۰:۵۲:۰۸)farzadavr نوشته است: [ -> ]با سلام
من یه برنامه برای میکروی مگا 16 نوشتم اما وقتی توی پورتیوس تست کردم درست کار نکرد لطفا برنامه رو بررسی کنید و بگید ایراد برنامه کجاست و به سوالات من جواب بدید با تشکر
توضیحات: سه ورودی A - B - C داریم و سه خروجی A - B - C مشخصه که کدوم ورودی مال کدوم خروجی هست
به ترتیب اول A مهم هست بعد B و بعد C
اگر A وصل باشه دو ورودی دیگه باید قطع باشند
اگر A قطع شد باید B وارد مدار بشه و در هر زمان A برگشت B باید قطع بکنه
اگر هر دو ورودی A - B قطع بودند ورودی C وارد مدار میشه اما در هر زمان یکی از اون دوتا برگشت C قطع میکنه و پستشو تحویل میده
سوالات :
اول : چرا وقتی خروجیم وصل میشه دیگه قطع نمیشه ؟
دوم : چرا وصل شدنشون به اون ترتیبی که میخوام نیست ؟؟؟
لطفا کمک کنید
[img][/img]
سلام
شما میخواهید همین برنامه درست شود یا برنامه جدید میخواهیدبه این علت که
.مثلاPINC.0=1 دربرنامه
در ست نیست اگر میخواهید 1 شود باید بنویسید PORTC.0=1 وامثال این
در ضمن اگر در برنامه ای از PORTC استفاده کردید باید در
قسمت فیوز بیت JTAGEN را غیر فعال کنید (1 کنید)
موفق با شید
داداش سروس برنامه + شبیه ساز رو بزار تا واست درستش کنم.
با عکس که نمیشه(نه که نشه میشه ولی من با این جور کارا حال نمیکنم).
این فایل های که بت گفتم رو بزار تا اصلاح شده اونارو واست قرار بدم.
با سلام
باید خدمت دوست عزیزم vigraz عرض کنم من PORTC.0=1 رو اول نوشتم درست عمل نکرد آخرش PINC.0=1 ور امتحان کردم که شاید به نتیجه برسه که اونم شرمندم کرد
گفتی "در ضمن اگر در برنامه ای از PORTC استفاده کردید باید در
قسمت فیوز بیت JTAGEN را غیر فعال کنید (1 کنید) "
راستش من تازه وارد دنیای میکرو شدم و در مورد فیوز بیت چیزی نمیدونم یعنی اگه از پرت دیگه ای استفاده کنم مشکل حل میشه؟؟؟؟؟
یه جا هم گفتی "شما میخواهید همین برنامه درست شود یا برنامه جدید میخواهید"
راستش خیلی دلم میخواد اشتباهاتم توی همین برنامه رو بهم بگین تا درستش کنم
و شما برادر عزیزم h.unique من قبول دارم که از روی عکس خوشت نماد اما چون فعلا جایی نیستم که سورسشو برات بیارم یه جوری با همین کنار بیا
با تشکر
سلام دوست عزیز
این برنامه و شماتیک فکر کنم به دردت به خوره
موفق باشی ...
نقل قول: با سلام
گفتی "در ضمن اگر در برنامه ای از PORTC استفاده کردید باید در
قسمت فیوز بیت JTAGEN را غیر فعال کنید (1 کنید) "
راستش من تازه وارد دنیای میکرو شدم و در مورد فیوز بیت چیزی نمیدونم یعنی اگه از پرت دیگه ای استفاده کنم مشکل حل میشه؟؟؟؟؟
سلام
عزیز واسه غیرفعال کردن jtagen ؛
1-برنامه پروگرامر خودتون و باز کنید(اعم از progisp،chillprog ویا هر برنامه دیگه)
2-یه قسمتی تو صفحه اول برنامه مربوط به فیوزبیت هاست؛
دقت کنید این فقط یه نمونه است و به این طریق تنظیم نکنید؛
تو حالت پیش فرض فقط پایه jtagen رو برابر 1 قرار دهید... همین
نقل قول: فعلا جایی نیستم که سورسشو برات بیارم یه جوری با همین کنار بیا
لاقل این و تو یه نت پتی ، چیزی تایپ می کردید، میذاشتید، با عکس آدم سرگیجه میگیره
ضمنا چرا از debounce استفاده کردید؟ با چندتا شرط if هم کارتون راه میافته!
(۱۳-مهر-۱۳۹۱, ۱۹:۱۹:۴۳)farzadavr نوشته است: [ -> ]با سلام
باید خدمت دوست عزیزم vigraz عرض کنم من PORTC.0=1 رو اول نوشتم درست عمل نکرد آخرش PINC.0=1 ور امتحان کردم که شاید به نتیجه برسه که اونم شرمندم کرد
گفتی "در ضمن اگر در برنامه ای از PORTC استفاده کردید باید در
قسمت فیوز بیت JTAGEN را غیر فعال کنید (1 کنید) "
راستش من تازه وارد دنیای میکرو شدم و در مورد فیوز بیت چیزی نمیدونم یعنی اگه از پرت دیگه ای استفاده کنم مشکل حل میشه؟؟؟؟؟
یه جا هم گفتی "شما میخواهید همین برنامه درست شود یا برنامه جدید میخواهید"
راستش خیلی دلم میخواد اشتباهاتم توی همین برنامه رو بهم بگین تا درستش کنم
و شما برادر عزیزم h.unique من قبول دارم که از روی عکس خوشت نماد اما چون فعلا جایی نیستم که سورسشو برات بیارم یه جوری با همین کنار بیا
با تشکر
سلام
این تصحیح برنامه -
config porta=input
config portc=output
-------------------
:first
if pina.0=1 then
waitms 50
end if
if pina.0=1 then
portc.0=1
portc.1=0
portc.2=0
end if
----------------------
if pina.1=1 and pina.0=0 then
waitms 50
end if
if pina.1=1 and pina.0=0 then
portc.0=0
portc.1=1
portc.2=0
end if
----------------------
if pina.2=1 and pina.1=0 and pina.0=0 then
waitms 50
end if
if pina.2=1 and pina.1=0 and pina.0=0 then
portc.0=0
portc.1=0
portc.2=1
end if
waitms 50
if pina.3=1 then goto end
goto first
:end
---------------------
pina.3 برای این بکار رفته تا هر وقت بخواهید بدون قطع ولتاز
از برنامه خارج شوید و میتواند حذف شود
برای مسئله jtagen میتوانید ازPORTD بجای PORTC استفاده کنید
موفق باشید
[
attachment=7899][
attachment=7899]با سلام خدمت تمام شما دوستان عزیز و از همه شما تشکر میکنم برا تمام کمکهاتون
برادر عزیز robojalal من این برنامه رو دانلود کردم و همونجور که خودتون گوفته بودید عالی عمل می کرد
اما یه موردی هست :این برنامه هم مثل برنامه خودم وقتی ورودی رو که یک هست صفر میکنی خروجی همچنان یک میمونه و صفر نمیشه چرا ؟؟؟؟؟
یه چیز دیگه من سعی کردم این مشکل رو رفع کنم اما با عرض شرمندگی نشد و نمیدونم چرا دو خروجی دوم و سوم از کار افتادند من برنامه دستکاری شده رو در اختارتون قرار میدم لطفا بگید کجا رو اشتباه کردم
دوست گلم r0b0 :عرضم به حضورت که اگه نمیتونی کمک کنی باشه چشم اینم از دستورات نوشته شده داخل تکست
راستی در مورد استفاده از دستور "debounce" گفته بودم من تازه کار هستم و آموزشم رو با یه فایل pdf ساده که بشکل گفت و گوی بین دو نفر بود شروع کردم در اون آموزش گفته شده بود هر جا از ورودی استفده میکنیم باید از این دستور استفاده کنیم
سلام دوست گلم
ببین با این شرط هایی که داری این برنامه جواب میده برنامه با پروتوسش تو پیوست گذاشتم
بعدش سعی کن اگه خیلی تازه واردی اولش از کتاب میکروکنترل avr آقای بخت آور استفاده کنی برای راهاندازی خوبه ولی بعد کتاب علی کاهه رو بگیر کتاب خوبیه
سلام به آقا فرزاد
منظورتون اینه که اگه in1 = 1 شد خروجیش تا زمانیکه ورودیش 1 هست 1 بمونه و اگه in1 = 0 شد خروجی 2 روشن بشه در حالی که in2 = 0 هست ؟ درسته ؟ این روال برای سومی هست ؟
منظورتون اینه ؟
موفق یاشی ....
(۱۶-مهر-۱۳۹۱, ۱۱:۳۸:۲۳)farzadavr نوشته است: [ -> ]با سلام خدمت تمام شما دوستان عزیز و از همه شما تشکر میکنم برا تمام کمکهاتون
برادر عزیز robojalal من این برنامه رو دانلود کردم و همونجور که خودتون گوفته بودید عالی عمل می کرد
اما یه موردی هست :این برنامه هم مثل برنامه خودم وقتی ورودی رو که یک هست صفر میکنی خروجی همچنان یک میمونه و صفر نمیشه چرا ؟؟؟؟؟
یه چیز دیگه من سعی کردم این مشکل رو رفع کنم اما با عرض شرمندگی نشد و نمیدونم چرا دو خروجی دوم و سوم از کار افتادند من برنامه دستکاری شده رو در اختارتون قرار میدم لطفا بگید کجا رو اشتباه کردم
دوست گلم r0b0 :عرضم به حضورت که اگه نمیتونی کمک کنی باشه چشم اینم از دستورات نوشته شده داخل تکست
راستی در مورد استفاده از دستور "debounce" گفته بودم من تازه کار هستم و آموزشم رو با یه فایل pdf ساده که بشکل گفت و گوی بین دو نفر بود شروع کردم در اون آموزش گفته شده بود هر جا از ورودی استفده میکنیم باید از این دستور استفاده کنیم
سلام
با برنامه vigraz عزیز کار کردید؟
برنامه ایشون درست بود، فقط portb به جای portc باید config می شد و به هنگام قطع کلیدها، خروجی صفر میشد؛ اون شزط آخر هم اضافه بود.
که با تصحیح کاملش کردم.
اینم برنامه ای که می خواستی؛
کد:
$regfile = "m16def.dat"
$crystal = 8000000
Config Porta = Input
Config Portb = Output
Do
If Pina.0 = 0 And Pina.1 = 0 And Pina.2 = 0 Then
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
end if
if pina.0=1 then
waitms 50
End If
if pina.0=1 then
Portb.0 = 1
Portb.1 = 0
Portb.2 = 0
end if
if pina.1=1 and pina.0=0 then
waitms 50
End If
if pina.1=1 and pina.0=0 then
Portb.0 = 0
Portb.1 = 1
Portb.2 = 0
end if
if pina.2=1 and pina.1=0 and pina.0=0 then
waitms 50
End If
if pina.2=1 and pina.1=0 and pina.0=0 then
Portb.0 = 0
Portb.1 = 0
Portb.2 = 1
End If
Loop
End
دیگه پیوست نکردم؛ از همینجا بردار و تو بسکام کپی و کامپایل کن