ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 6 از 6
  1. #1
    2012/07/25
    17
    0
    FRA

    برنامه نويسي TWI

    سلام دوستان
    من اين خط از برنامه رو که قرار دادم نميفهمم ميشه راهنماييم کنيد؟؟!! :sad:

    (TWCR = (1<<TWINT)|(1<<TWSTA)| (1<<TWEN

    توي اين برنامه TWCR يک رجيستره که TWINT,TWSTA,TWEN بيت هاي تشکيل دهنده اون رجيستر هستن.

  2. #2
    2008/08/13
    اهواز
    674
    163

    پاسخ : برنامه نويسي TWI

    تووی این برنامه 1 به اندازه جایگاه TWEN که عدد 2 هست در رجیستر TWCR به سمت چپ شیفت داده میشه که نتیجه اون میشه عدد 00000100 بقیه بیت های نوشته شده هم به همین ترتیب به اندازه جایگاهشون به چپ شیفت داده میشن درنهایت این اعداد با هم OR میشن که عدد 10100100 رو درست میکنن حالا این عدد در رجیستر TWCR قرارداده میشه
    ( با تشکر از جناب Hamed Gh که این مطلبو به من یاد دادن)
    اگر توضیحات کافی نبود به این لینک برید
    http://www.eca.ir/forum2/index.php?topic=57531.0
  3. #3
    2012/07/25
    17
    0
    FRA

    پاسخ : برنامه نويسي TWI

    واقغا ازتون ممنونم
    خيلي لطف کرديد
  4. #4
    2012/07/25
    17
    0
    FRA

    پاسخ : برنامه نويسي TWI

    حالا يه سوال ديگه دارم
    توي اين خط از برنامه
    ; ((( while (!(TWCR & (1<<TWINT
    نتيجه TWINT>> مقدار 10000000 را نتيجه مي دهدو مقدار TWCR هم برابر با10100100 است پس نتيجه and برابر با 10000000 مي شود،اين مقدار باعث مي شود نتيجه پرانتز while صفر باشد يا يک؟يعني شرط while برقرار است يا نه؟
    دوستان اگه راهنمايي کنيد ممنون مي شم.
  5. #5
    2009/05/05
    905
    125

    پاسخ : برنامه نويسي TWI

    تا زماني که بيت TWINT يک نشده نتيجه پرانتز صفر هست که با علامت ! که پشتش قرار گرفته تبديل به يک ميشه و حلقه سرجاي خودش باقي ميماند.
    زماني که اين بيت يک از حلقه خارج ميشود چون درونش صفر خواهد شد
    ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ*هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ*ها، خاطره همتآ*هاى بلند را از يادها محو كرده است. (نهجآ*البلاغه، خطبه211)

    امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)
  6. #6
    2008/08/13
    اهواز
    674
    163

    پاسخ : برنامه نويسي TWI

    ببین دوست عزیز مشکل شما این هست که شما بیت twint رو 1 فرض کردید یعنی مقدار TWCR رو عدد 10100100 میدونید که اینطور نیست . اگر شما در حال بررسی مثال فیلم های آموزشی هستید خط قبلی این هست

    TWCR = (1<<TWINT)|(0<<TWEA)|(1<<TWSTA)| (0<<TWSTO)|(0<<TWWC)|(1<<TWEN)|( 0<<TWIE);
    مقدار بقیه بیت ها مهم نیست

    اون یکی که برای TWINT نوشته شده برای این هست که فلگ رو که قبلا" 1 شده صفر کنه . برای پاک کردن بیشتر فلگ ها باید در اون 1 نوشته بشه بنا برای مقدار رجیستر TWCR بعد از این خط این هست : 00100100

    حالا فرض کن وقفه ای اتفاق نیفتاده پس بیت TWINT هنوز صفر هست در این حالت مقدار درون پرانتز 0 بوده که NOT ان 1 میشود بنابراین حلقه WHILE مقدار 1 داشته و در حلقه باقی میمانیم

    هر گاه بیت TWINT یک شود مقدار WHILE صفر شده از حلقه خارج میشیم
    اگر لازم هست بگو تا بیشتر توضیح بدم
نمایش نتایج: از 1 به 6 از 6

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 2014/12/26, 20:47
  2. کدام زبان برنامه نويسي و کدام محيط برنامه نويسي ؟!
    توسط Nicolas1390 در انجمن میکروکنترلرهای AVR
    پاسخ: 13
    آخرين نوشته: 2012/12/12, 19:05
  3. کمک برنامه نويسي
    توسط majidshahbazi68 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2012/02/08, 17:39
  4. برنامه نويسي
    توسط szm67 در انجمن برنامه نويسي و اينترفيس
    پاسخ: 0
    آخرين نوشته: 2011/01/20, 17:27
  5. پاسخ: 4
    آخرين نوشته: 2006/10/26, 06:29

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •