ايران ويج

نسخه‌ی کامل: چت باکس علمی ایران ویج
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
نقل قول: این برنامه یه شمارنده حلقه ای 4 بیتی هست.فقط پیکر اصلی برنامه رو نوشتم

x=&h80
for i = 0 to 4
port a = x and &h0F
wait
rotate x ,left

اون خطی که بولد شده رو من نفهمیدم (ماسک کردن) کسی نمیدونه ؟

توی مدارش چهار تا ال ای دی به خروجی 0 تا 3 پورت a وصل شده.

[b]سلام.[/b]

عمل ماسك كردن از اسمش هم معلومه ديگه ، يه وقتي ممكنه از پايه هاي ديگه ي پورته خاصي داري استفاده مي كني و مي خواي چندتاشون كه مد نظرت هست متاثر شن و وظعيت بقيه تغييري نكنه و در عين خحال راحت مقدار دهي كني ...
مي ياي و از ماسك استفاده مي كني ...
اين رو هم در نظر بگير كه 1 اگر با 0 and بشه ، حاصل 0 خواهد بود.
اينجا هم &H0F همون لايه ي ماسك هست كه 4 بيت كم ارزش رو فقط متاثر مي كنه ...

موفق باشي.
يا علي.
سلام.

دوستان يه مشكل عجيب و تا حدودي خنده دار ( البته در اولين لحظات مواجه شدن باش ...! )
8 تا LED به پايه هاي portA وصل كردم و مقاديرشون رو 0 و 1 كردم ( 1000 بار با شيوه هاي مختلف !! )
ولتاژ خروجيش تغييري نمي كنه و Led ها رو روشن نمي كنه ...
گفتم شايد اين atmega32 خرابه و با يكي ديگه هم امتحان كردم كه اون هم همينطور بود !!!!
بعد ياد پايه هاي AVCC و GND و AREF كه مربوط به adc مي شه افتادم ( آخه من هيچ وقت اينا رو وصل نمي كنم )
بعد از وصل كردن اين ها هم توفيقي حاصل نشد ، فقط زمان كه مي گذشت ميكرو داغ تر و داغ تر مي شد !!!!! ( اين داغ شدت طبيعيه ؟! از سمت ADC هم شروع به داغ شدن مي شه ! )
نظرتون چيه ؟!
فكر مي كنم يه نكته ي خيلي پيش پا افتاده رو رعايت نمي كنم !!
ديگه چيزي به ذهنم نمي رسه !!
بقيه ي پورت ها مشكلي ندارن !

پيشاپيش ممنون از جواب هاتون.

يا علي.
سلام
adc ميكرو را كه فعال نمي كني ؟ پورت a را خروجي تعريف كردي ؟
آخه ديگه ... Biggrin
اگه ديگر پورتها هم كار نميكردند مي گفتم كه از ال اي دي توان پايين استفاده كن شايد جريان زياد بكشه ( داغ كردن ) و افت ولتاژ پيدا كرده ( روشن نشدن ) !!WhistleWink
سلام و مرسي ...

شما كه مي خوايد از پورت a استفاده كنيد ، كاري اضافه تر انجام مي ديد ؟!
پايه هاي AVCC و GND و AREF رو هم وصل مي كنيد يا رها مي كنيد ؟!
تو رو خدا مي بيني ... همه به مشكل مي خورن ما هم به مشكل مي خوريم ... !! Biggrin

يا علي.
آخه بقول خودت مشكل اونقدر كوچيكه كه راه حلش را هم نميشه ديد !! Biggrin
نقل قول: پايه هاي AVCC و GND و AREF رو هم وصل مي كنيد يا رها مي كنيد ؟!
نه عزيز فقط يه نگاه ديگه بينداز ببين يه موقع از نظرت رد نشده باشه و adc را پيكره بندي كرده باشي يا پورت َ را خروجي تعريف نكرده باشي
نقل قول: تو رو خدا مي بيني ... همه به مشكل مي خورن ما هم به مشكل مي خوريم ... !!
اين همون مشكل كوچيكيه كه يه آدم بزرگ را سر كار ميذاره !!
دوستان ياري كنند تا شارين به فكر خودكشي نيفتاده !! Biggrin
نقل قول: نه عزيز فقط يه نگاه ديگه بينداز ببين يه موقع از نظرت رد نشده باشه و adc را پيكره بندي كرده باشي يا پورت َ را خروجي تعريف نكرده باشي
هر وقت مي خوام از سالم بودن ميكرو مطمئن شم ، يه برنامه ي كوچولو و از نو مي نويسم. كاري با adc نداشتم ...

نقل قول: اين همون مشكل كوچيكيه كه يه آدم بزرگ را سر كار ميذاره !!
دوستان ياري كنند تا شارين به فكر خودكشي نيفتاده !! Biggrin

:d
كوچيك تر از اين حرف هاييم ...
نه رضا جون ، پوسم كلفت تر از اين حرف هاست :d

----------------------------------

تمام مشكلات حل شد !!!!!!
چطوري ؟
خدا داند ؟! ( من الان دوتا شاخ بالا سرمه !! )
باز خدا رو شكر ...
رضا جون ممنون از همراهيت ...

يا علي.
سلام.

وقتي watchdog مسكرو رو restart مي كنه ، چطور مي شه فهميد كه اين اتفاق افتاده ؟
منظورم اينه كه بيت پرچم سر ريز رو چطور مي شه استفاده كرد؟
تو help بسكام خوندم ، اما در عمل براي atmega32 جواب نداد ، نمي دونم اين قابليت رو داره يا نه ... ، داره ؟
كدش به صورت زير بوده ...

If Mcusr.wdrf = 1 Then
Wdbit = 1
End If
If Wdbit = 1 Then
Cls
Lcd "Micro was reset "
Wdbit = 0
End If
سلام. ببخشید کسی میدونه ++ با + در زبان ++C چه فرقی باهم دارن؟

من جوابم اینه : ++ وقتی میخواهیم به یک متغیر یک واحد اضافه کنیم استفاده میشه و + موقعی استفاده میشه که مثلاً دوتا متغیر رو بخواهیم باهم جمع کنیم.

آیا درسته؟
جواب شما تا حدودی درسته کاربردهای دو عملگر به صورت زیره :
+ :
کد:
a += 1
a=a+1
++ :
کد:
b=++a
b=a++
فرق این دو مورد آخر دز اینه که اگه فرضا a=1 باشه در اولی b مقدارش 2 میشه ولی در دومی b مقدارش 1 هست
ببخشید من نفهمیدم اولی که b نداره
سلام

نقل قول: ببخشید من نفهمیدم اولی که b نداره
کد:
a += 1
a=a+1

دو عبارت بالا معادل همديگه هستن و هيچ فرقي نمي كنن.

در رابطه با :

کد:
b=++a
b=a++

طبق گفته ي mhpc2009 عزيز ، اولي يعني b=++a
و دومي يعني ++b=a كه درست هم هست.

ببينيد ، در مورد اول ، در ابتدا 1 واحد به a اضافه مي شه سپس مقدار a جديد به b اعمال مي شه .
در دومي مقدار فعليه a به b اعمال ميشه و بعد از اينكه b مقدار گرفت ، a يك واحد اضافه مي شه ...

حل شد ؟

موفق باشيد.
يا علي.