اطلاعیه

Collapse
No announcement yet.

برنامه تا زمانی که ریست زده نشه کار نمی کنه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برنامه تا زمانی که ریست زده نشه کار نمی کنه

    سلام
    من یه برنامه معمولی نمایش متن روی LCD کاراکتری نوشتم. همه چیز درست هستش ولی وقتی کلید پاور رو میزنم برنامه کار نمی کنه و وقتی دکمه ریست رو میزنم تازه شروع به کار میکنه.
    یعنی برنامه تا وقتی ریست زده نشه انگار کار نمی کنه. مشکل از کجاست به نظرتون؟

    #2
    پاسخ : برنامه تا زمانی که ریست زده نشه کار نمی کنه

    یه مشکل دیگه هم پیدا کردم اونم اینه که میکرو به صورت خودکار ریست میشه و برنامه از حلقه while خارج میشه و برنامه از اول شروع به کار میکنه.
    این مشکل زمانیه که برنامه رو دانلود میکنم رو میکرو ولی وقتی دیباگ میکنم این مشکل نیست.
    اینم کد برنامه هستش:

    کد:
    #include <AT91SAM7S256.h>
    #include "delay.h"
    #define LCD_PORT_A
    #define	LCD_RS  6
    #define	LCD_E  8
    #define LCD_DB4	15
    #define LCD_DB5	16
    #define LCD_DB6	17
    #define LCD_DB7	18 
    #include "lcd.h"
    
    
    
    char *str="MMS GROUP";
    int num=2013;
    
    int main()
    {
    
    	*AT91C_PIOA_PER = (1 << 7 | 1 << 11 | 1 << 12 | 1 << 13 | 1 << 14);
    	*AT91C_PIOA_OER = (1 << 7 | 1 << 11 | 1 << 12 | 1 << 13 | 1 << 14);
    	*AT91C_PIOA_CODR =(1 << 7 | 1 << 11 | 1 << 12 | 1 << 13 | 1 << 14);
    	lcd_init();
    	lcd_clear();
    	cursor_blink();
    	delay_s(3);
    	while(1)
    	 {
    		*AT91C_PIOA_CODR =(1 << 7 | 1 << 11 | 1 << 12 | 1 << 13 | 1 << 14);
    		cursor_off();
    		lcd_gotoxy(1,1);
    		lcd_putsf(str);
    		lcd_gotoxy(2,1);
    		lcd_putsf("S.A.B.A. ");
    		lcd_gotoxy(2,11);
    		lcd_puts(num);
    		lcd_shift_left(1);
    		delay_ms(500);
    		lcd_shift_left(1);
    		delay_ms(500);
    		lcd_shift_right(1);
    		delay_ms(500);
    		lcd_shift_right(1);
    		delay_ms(500);
    	 }
    	
    	}

    دیدگاه


      #3
      پاسخ : برنامه تا زمانی که ریست زده نشه کار نمی کنه

      نوشته اصلی توسط eastofsorrow
      سلام
      من یه برنامه معمولی نمایش متن روی LCD کاراکتری نوشتم. همه چیز درست هستش ولی وقتی کلید پاور رو میزنم برنامه کار نمی کنه و وقتی دکمه ریست رو میزنم تازه شروع به کار میکنه.
      یعنی برنامه تا وقتی ریست زده نشه انگار کار نمی کنه. مشکل از کجاست به نظرتون؟
      سلام.
      یه تاخیر کوچیک در حد 50 میلی قبل از تابع lcd_init بذار.
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


        #4
        پاسخ : برنامه تا زمانی که ریست زده نشه کار نمی کنه

        نوشته اصلی توسط mehdi_nxp
        سلام.
        یه تاخیر کوچیک در حد 50 میلی قبل از تابع lcd_init بذار.
        سپاس از راهنمایی شما، تاخیر رو اضافه کردم و و مشکل startup حل شد و دیگه نیازی به زدن ریست نیست. :wow:
        اما متاسفانه مشکل ریست شدن خودکار پابرجاست و میکرو حدود هر 10 ثانیه ریست میشه :angry:

        دیدگاه


          #5
          پاسخ : برنامه تا زمانی که ریست زده نشه کار نمی کنه

          مشکل ریست شدن خودکار هم پیدا کردم، حواسم نبود که باید watchdog رو غیر فعال کنم
          این خط اضافه کردم دست شد:
          AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;

          دیدگاه

          لطفا صبر کنید...
          X