PDA

View Full Version : تجزیه و تحلیل کد



KING AMIN
دوشنبه 25 دی 1391, 17:59 عصر
سلام من یک ادم مبتدی می باشم که شروع به یادگیری الکترونیک اونم بدون استاد کردم
دوستان اگه میشه کد زیر استپ استپ برای من ترجمه کنید و بگویید چیکار می کند

Borland.C
دوشنبه 25 دی 1391, 18:13 عصر
DDRA=0xFF
پورت A میکرو رو حالت خروجی تنظیم می کنه به جای A میتونه سایر پورت ها هم باشه مثلا DDRB یا DDRC
اگه صفر باشه پورت به صورت ورودی عمل می کنه.

PORTA=i
این کد هم مقدار i رو پورت A نمایش میده.این دستور کل پورت رو مقدار دهی می کنه.مثلا اگه بخوای پین 1 میکرو مقدار 1 رو داشته باشه مقدار i=1 و اگه بخوایم پین 1و2 همزمان 1 باشند باید i=3 باشه
دلیل اینو که می دونید دیگه؟بحت اعداد باینری

دستور for هم نیاز به توضیح نداره.اگه این قسمت مشکل هست...

اما دستور ایجاد تاخیر
delay_ms(x)
این دستور به میزان x در اجرا برنامه تاخیر ایجاد میکنه.
اگه delay_ms باشه تاخیر بر حسب میلی ثانیه و اگه delay_us باشه تاخیر بر حسب میکروثانیه خواهد بود
به عنوان مثال کد شما در هر بار دور حلقه 100میلی ثانیه تاخیر داره(استوپ داره)
نکته ظریف: این تاخیرها زمانی مقدار نزدیک به واقعیت دارند که میزان کریستال و فیوزبیت ها درست ست شده باشند
امیدوارم کامل توضیح داده باشم
پیروز باشید

KING AMIN
دوشنبه 25 دی 1391, 18:39 عصر
مرسی
مشکل اصلی من تو همین اعداد باینری؟می شه توضیح بدی
بعد فرق ddrb با portb چیه

Borland.C
دوشنبه 25 دی 1391, 18:57 عصر
این موضوع رو کامل توضیح دادم که!!!!!!!!!!
با دقت بخونید
این مطلب خیلی سادس حتما چندین بار هم مطرح شده احتمالا حذف بشه
اگه مشکلی بود با آی دی بنده در مسنجر یاهو تماس بگیرید
ansnet_ir

SEZAR.CO
دوشنبه 25 دی 1391, 19:06 عصر
فکر کنم دوسمون توی این جا را خوب ندیدند به همین علت منظورتون را نگرفتند اگه مشکلی بود بگید

این کد هم مقدار i رو پورت A نمایش میده.این دستور کل پورت رو مقدار دهی می کنه.مثلا اگه بخوای پین 1 میکرو مقدار 1 رو داشته باشه مقدار i=1 و اگه بخوایم پین 1و2 همزمان 1 باشند باید i=3 باشه
اعداد باینری چیز راحتی توی گوگل سرچ کن اگه نفهمیدی بگو توضیخ بدم با تشکر

Borland.C
دوشنبه 25 دی 1391, 19:13 عصر
اگه تو کدویژن برنامت رو می نویسی که نیازی به یادگیری اعداد باینری برای این مثال ندارید
به راحتی میتونی با استفاده از دستور زیر پین های مختلف رو آدرس دهی کنی
PORTA.x=i
x شماره پین پورت A هستش که از 0 تا 7 می باشد
این دستور مقدار i که در این دستور 1یا0 هستش رو به پین مشخص شده نسبت میده
البته این روش روی DDRA صادق نیست و فقط مربوط به دستور PORT میشه
برای خواندن پورت هم از PINA استفاده می کنی که اینجا A میتونه سایر پورت ها هم باشه
دستور هم از موضوع بالا طبعیت می کنه
i=PINA.0
این دستور مقدار اولین پین پورت A رو خونده و در i قرار میده

Borland.C
دوشنبه 25 دی 1391, 19:14 عصر
دستورات بالا همشون آخرشون ; هم دارن :لبخند: