ايران ويج

نسخه‌ی کامل: مشكل ست كردن پايه ميكرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5
(۰۸-اردیبهشت-۱۳۸۹, ۱۷:۳۶:۳۱)اشك نوشته است: [ -> ]من اينطوري كدم رو نوشتم

کد:
$regfile="m32def.dat"
$crystal=8000000
config lcdpin=.....
config lcd=....

config portd=input
A alias portd.0
reset portd.0
do
if a=1 then cls:lcd"ashk"
loop
ببخشین من قبلاً این پستو دقیق نخونده بودم و پست قبلی شما رو در مورد پورت d خوب متوجه نشده بودم

در این برنامه ای که شما نوشته اید پورت d رو ورودی معرفی کردین، پس نمیتونین هیچکدوم از پین های اونو ست یا ریست کنین.
اخه اگه ريست نكنم خودش يه ولتاژي رو ميده مثلا 1 ولت
به خاطر همين ريست كردمش
مهندس واسه خونه از پایه میکرو از دستور pin استفاده میشه !

همون چیزی که مودج گفتش !!!


مشکلتون هم همونجاست !

در ضمن یادتون نره پایه میکرو رو ول نذارین !

به یه مقاومت پول آپ و یا پووول دون باید واسش بذارین !

می تونی از پوول آپ داخلی هم استفاده کنین !!
دوست عزيز اولا خيلي ممنونم كه جواب منو ميديد و دوما اينكه من تا حالا از اين روش استفاده نكردم و الآن خيلي برام مهمه و داره مشكل برام درست ميكنه. :(

منظورتون رو در مورد اينكه پايه را ول نذارم اينكه : با يك سويچ كه در يك حالت به منفي و در حالت ديگر(يعني وقتي فشار داديم) به مثبت وصل بشه درسته؟؟؟

اگر اين نيست لطفا منو در جريان بگذاريد.

متشكرم
نه !

یه مقاومت 10 کیلو بین پایه مورد نظر که ورودی تعریف کردی و زمین بذارین ! ( میشه پوول دووون ! )
اينطوري 100% ميشه ديگه ؟
چی 100 درصد میشه ؟


خوب وقتی پایه ورودی میکرو ول باشه نویز می گیره و نمی شه وضعیتی واسش در نظر گرفت !

می تونی از پوول آپ داخلی هم استفاده کنی !

پورت رو ورودی تعریف کن و اون یک کن !

کد:
config port b = input
set portb

اینطوری اگه پایه ول باشه میکرو یک میگیره و اگه می خوای کلید وصل کنی کلید رو باید بین میکرو و زمین وصل کنی و هر موقع کلید فشار داده بشه میکرو صفر میگیره !!
ايا بايد بين port و b فاصله باشه؟
(۱۲-اردیبهشت-۱۳۸۹, ۰۰:۲۹:۰۳)t3r!p3000 نوشته است: [ -> ]
کد:
config port b = input
set portb

با توجه به مطالبي كه به من گفتيد من اول اين كد رو نوشتم اما به صورت اتوماتيك خودش رفتار كرد و منتظر اعمال ولتاژ نشد! چرا؟
کد:
Bitwait pind.0 , Set
cls:lcd"waiting..."

Bitwait pind.1 , Set
Cls:lcd"Ready..."
Wait 1
بعد اومدم و اين كد رو نوشتم اين جواب داد اما نه هميشه. 5 بار جواب داد و 2 بار جواب نميداد و به دلخواه خودش رفتار كرد! چرا؟
کد:
Do
If pind.0 =1 Then
cls:lcd"Waiting..."
If pind.1=1 Then
cls:lcd"Ready..."
Endif
Endif
Loop

مگه Bitwait نبايد منتظر بمونه تا من پورتم رو يك كنم؟
مگه در زماني كه از IF استفاده كردم نبايد هميشه يه كار را انجام بده ؟
برنامه اولی رو به جای Set با reset تستش کن و کلید رو بین اون پایه میکرو و زمین بذار !!


برنامه دوم هم به جای 1= از 0= استفاده کن !! ( تو دستور شرط )


توجه داشته باش شما پورت ب رو ورودی تعریف کردی و با ست کردن یعنی پوول آپ داخلی رو فعال کردی و میکرو اگه ول باشه یک می گیره و تو برنامه ات باید با منطق صفر کار کنی !!!
من خلاصه اي از كدم رو نوشتم اما در هر دو صورت Set و Reset امتحان كرم ولي هيچ فرقي نميكنه !
دقیقا شما چی کار می خواین بکنین و یکم بیشتر توضیح بدین !!!

من الان موندم بحث در مورد چی هستش !!
صفحه‌ها: 1 2 3 4 5