NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4660 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: مشکل با int0 در کدویژن

  1. #1
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض مشکل با int0 در کدویژن

    سلام

    من یه برنامه ی ساده نوشتم ، در این برنامه وقفه ها به لبه ی پاین رونده حساس هستن ، وقتی که وقفه اتفاق می افته برنامه ی مربوط به lcd که داخل تابع int0 نوشته شده کار نمی کنه ، درحالیکه برنامه ی صفر و یک شدن پورت کار می کنه. ورژن کدویژن من 2.05.0 هست. برنامه توی پروتیوس کار می کنه ولی توی عمل فقط پورت چشمک می زنه و صفحه ی lcd به کل پاک میشه! من فایل های مربوط به کدویژن و شبیه سازی رو گذاشتم. کسی می دونه قضیه از چه قراره؟

    اینم کد برای بررسی سریعتر :

    کد:
    #include <mega8.h>
    #include <stdio.h>
    #include <alcd.h>
    #include <delay.h>
    
    
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    // Place your code here
    
     lcd_init(16);
     PORTD.4=1;
     lcd_clear();
     lcd_gotoxy(0,0);
     lcd_putsf("INT0 isr");
     delay_ms(1000);
     PORTD.4=0;
     
    }
    
    interrupt [EXT_INT1] void ext_int1_isr(void)
    {
    // Place your code here
    
    }
    
    
    void main(void)
    {
    
    char Enter=13;
    char sms[160];
    char B;
    
    char k=0;
    int j=0;
    int i=0;
    
    for (k=0;k<250;k++){
    sms[k]=0;
    };
    
    PORTB=0x00;
    DDRB=0x00;
    
    PORTC=0x00;
    DDRC=0x00;
    
    PORTD=0x00;
    DDRD=0x10;
    
    GICR|=0xC0;
    MCUCR=0x0A;
    GIFR=0xC0;
    
    UCSRA=0x00;
    UCSRB=0x18;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x26;
    
    // RS - PORTB Bit 5
    // RD - PORTB Bit 6
    // EN - PORTB Bit 4
    // D4 - PORTB Bit 3
    // D5 - PORTB Bit 2
    // D6 - PORTB Bit 1
    // D7 - PORTB Bit 0
    // Characters/line: 16
    lcd_init(16);
    
     lcd_clear();
     lcd_gotoxy(0,0);
     printf("ATE0%c",Enter);
     lcd_putsf("Get sms...");
     delay_ms(1000);
     //lcd_clear();
    
    // Global enable interrupts
    #asm("sei")
    
    
    
    while (1)
          {
          // Place your code here
    
          }
    }
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط morteza_rk : 23-06-2011 در ساعت 00:32
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیر باز نشسته t.o.e آواتار ها
    تاریخ عضویت
    Sep 2010
    نوشته ها
    191
    تشکر
    150
    تشکر شده 122 بار در 60 پست

    پیش فرض

    سلام مجدد:
    من برنامه شما رو تست گرفتم.توی پروتئوس منم درست کار کرد.فردا مدار رو عملی میبندم.تست میگیرم ببینم چی میشه.شما هم سخت افزار رو یه بررسی بکنید.من برنامه رو نگاه کردم..چیز خاصی نداره.بعیده که جواب نده!.خودمم به این مشکل خوردم.350 خط برنامه نوشته بودم.تو پروتئوس درست بود ولی تو عمل درست جواب نمیداد.اونم به خاطر ایزوله بودن پروتئوس بود که من با یک کردن یه پورت کارم درست شد.
    احتمال میدم که مشکل شما هم اینطوری باشه.فردا تست میگیرم.نتیجه رو بهتون میگم.

  4. #3
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام

    ممنون از جوابتون این قسمتش رو که خوندم "با یک کردن یه پورت کارم درست شد" این نکته به ذهنم رسید که آیا باید pind.2 رو که همون int0 هست ورودی تعریف کنم یا نه؟ آخه توی بسکام لازم نیست ، حالا باید یه بارم توی کدویژن و عملی تست کنم. چون برنامه واقعا سادست ، هیچی نداره ولی مخ منو کار گرفته!

    جواب رو اعلام می کنم.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  5. #4
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    آقا مشکل رفع شد!

    من توی برنامه یه متغیر SMS تعریف کرده بودم که 160 تا درایه داشت ولی بعدا تا درایه ی 250 رو صفر کرده بودم! یعنی اصلا درایه های 160 به بعد وجود نداشتن.

    همین. الان که عدد 250 رو به 160 تغییر دادم برنامه درست شده! ممنون جناب t.o.e
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  6. #5
    مدیر باز نشسته t.o.e آواتار ها
    تاریخ عضویت
    Sep 2010
    نوشته ها
    191
    تشکر
    150
    تشکر شده 122 بار در 60 پست

    پیش فرض

    سلام: یا علی مدد.
    ما که کاری نکردیم.ذهن خلاق خودتون بود که عیب برنامه رو پیدا کرد.
    موفق و موید باشید.

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

  1. Spi نرم افزاری در کدویژن
    توسط ali2914 در انجمن AVR
    پاسخ: 16
    آخرين نوشته: 13-08-2014, 00:49
  2. چاپ یک آرایه 4*4 در کدویژن
    توسط abbasalifix در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 1
    آخرين نوشته: 08-06-2014, 02:06
  3. برنامه نقاشی ویندوز 7 را به ویندوزهای ویستا و ایکس پی اضافه کنید
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 1
    آخرين نوشته: 20-01-2010, 15:43
  4. نواز وظیفه ویندوزهای ایکس پی و ویستا را به نوار وظیفه ویندوز 7 تبدیل کنید
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 19-01-2010, 13:39
  5. Xp ویندوزهای ویندوز 2003 سرور را دقیقا به ویندوز 7 تبدیل نمائید
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 19-01-2010, 12:59

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

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