اطلاعیه

Collapse
No announcement yet.

حلقه بی نهایت در برنامه

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

    حلقه بی نهایت در برنامه

    سلام به همه دوستان


    برنامه ای که نوشتم تو تابع f_open گیر میکنه و خروجی نمیده
    دقیقا انگار که یه حلقه ی بینهایت داخل این تابع قرار داره
    من بارها با این تابع کار کردم والا هیچ وقت این طوری نبوده
    برنامه هم هیچ ایرادی نداره و کامپایل شده که من تونستم بریزمش تو میکرو
    رو مگا 128 و مگا 32 همینطور هست اما قبلا اینطوری نبوده

    تابع f_mount بدون مشکل اجرا میشه بعدش که به f_open میرسه دیگه همون جا میمونه
    این تابع قراره یه فایل به نام 1 رو باز کنه و بخونه

    نمیدونم مشکل از کجاست !!!!!!!بازم میگم براساس آزمایش هایی که انجام دادم واقعا این تابع خروجی نمیده اما قبلا اینطوری نبوده !!!
    آرزوی سرافرازی برای ایران عزیز . . .



    #2
    پاسخ : حلقه بی نهایت در برنامه

    نوشته اصلی توسط rezamajdi نمایش پست ها
    سلام به همه دوستان


    برنامه ای که نوشتم تو تابع f_open گیر میکنه و خروجی نمیده
    دقیقا انگار که یه حلقه ی بینهایت داخل این تابع قرار داره
    من بارها با این تابع کار کردم والا هیچ وقت این طوری نبوده
    برنامه هم هیچ ایرادی نداره و کامپایل شده که من تونستم بریزمش تو میکرو
    رو مگا 128 و مگا 32 همینطور هست اما قبلا اینطوری نبوده

    تابع f_mount بدون مشکل اجرا میشه بعدش که به f_open میرسه دیگه همون جا میمونه
    این تابع قراره یه فایل به نام 1 رو باز کنه و بخونه

    نمیدونم مشکل از کجاست !!!!!!!بازم میگم براساس آزمایش هایی که انجام دادم واقعا این تابع خروجی نمیده اما قبلا اینطوری نبوده !!!
    سلام در صورت امکان متن برنامتون رو بزارید تا بتونم راهنماییتون کنم

    دیدگاه


      #3
      پاسخ : حلقه بی نهایت در برنامه

      سلام و تشکر :
      این برنامه

      کد:
      This program was produced by the
      CodeWizardAVR V2.05.3 Standard
      Automatic Program Generator
      © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
      http://www.hpinfotech.com
      
      
      Project : 
      Version : 
      Date    : 07/13/2016
      Author  : YA HUSSAIN
      Company : farshad
      Comments: 
      
      
      
      
      Chip type               : ATmega32A
      Program type            : Application
      AVR Core Clock frequency: 16.000000 MHz
      Memory model            : Small
      External RAM size       : 0
      Data Stack size         : 512
      *****************************************************/
      
      
      #include <mega32a.h>
      
      
      #include <ff.h>
      #include <alcd.h>
      #include <delay.h>
      #include <string.h>
      #include <stdio.h>
      
      
      #define T1_OVF_FREQ 100
      #define T1_PRESC 1024L
      #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
      
      
      FRESULT res;
      unsigned int nbytes;
      FATFS drive;
      FIL file;
      DIR dir;
      
      
      unsigned char count=0,buff[32];
      
      
      // Timer1 overflow interrupt service routine
      interrupt [TIM1_OVF] void timer_comp_isr(void)
      {
      // re-initialize Timer1 
      TCNT1H=T1_INIT>>8;
      TCNT1L=T1_INIT&0xFF;
      // card access low level timing function 
      disk_timerproc();
      }
      
      
      unsigned char buffer_number[9],number=1;
      
      
      void picture_display()
       {           
             unsigned char path[] = "0:/1.txt";
              unsigned char  buffer_data[5],buffer[byte_read],count_total_byte=0,count,i0=0,g=0,i1,i2,count_pixel_x=0,a=0,b=0,c=0,d=0,i=0;
             unsigned int data_lcd=0,count_pixel_y=0;  
             unsigned long int offset=0;
              
             while (1)
              {    
                res=f_mount(0,&drive);
                sprintf(buff,"1a%db%dc%dd%d %x",a++,b,c,d,res);
                lcd_clear();
                lcd_puts(buff);
                delay_ms(700); 
                if ( res ==  0 )
                 break;
              }    
              lcd_clear();  
              lcd_putsf("salam 1");
              delay_ms(500);
              
              while (1)
              { 
                //////////////////////////////////////////////////////////////////////////////#
                res=f_open(&file,path,FA_READ);  
                //////////////////////////////////////////////////////////////////////////////#
                sprintf(buff,"2a%db%dc%dd%d %d n%d",a,b++,c,d,res,number);
                lcd_clear();
                lcd_puts(buff);
                delay_ms(700);
                if ( res ==  0 )
                 break;
              }
              lcd_clear();   
              lcd_putsf("salam 2");
              delay_ms(500);
        
             offset=0;
             while(1)
              {     
                              
                while (1)
                {   
                res=f_lseek (&file,offset);
                sprintf(buff,"3a%db%dc%dd%d %d",a,b,c++,d,res);
                lcd_clear();
                lcd_puts(buff);
                delay_ms(700); 
                if ( res ==  0 )
                 break;
                }
                offset+=byte_read;         
                lcd_clear();   
                lcd_putsf("salam 3");
              delay_ms(500);
                
                while ( 1 )
                {   
                res=f_read(&file,buffer,byte_read,&nbytes);  
                while(1)
                {
                sprintf(buff,"%c a%db%dc%dd%d %d",buffer[i++],a,b,c,d++,res);
                lcd_clear();
                lcd_puts(buff);
                delay_ms(500);
                }
                //delay_ms(200); 
                if ( res ==  0 )
                 break;
                }
                lcd_clear();
                lcd_putsf("salam 4");
                delay_ms(500);
                
                while(1)
                  { 
                           
                    if ( count_pixel_x == 239 )
                      {          
                       count_pixel_x=0;
                       count_pixel_y++;
                       if ( count_pixel_y == 639 )
                         { 
                          while ( res=f_close(&file) != FR_OK );
                          while ( res=f_mount(0,NULL) != FR_OK );
                          goto ending_displaying;
                         }
                       break;
                      } 
                    
                    count_pixel_x++;
                  }  
              }            
        ending_displaying:
       }  
      
      
      
      
      void main(void)
      {
      unsigned char str[16],buffer[byte_read],color_rgb,i1,i2,byte_read_ignor=0,buffy[2];
      unsigned long int offset2=0;
      unsigned int count=0,data_lcd;
      
      
      // Input/Output Ports initialization
      // Port A initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTA=0x00;
      DDRA=0x00;
      
      
      // Port B initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTB=0x00;
      DDRB=0x00;
      
      
      // Port C initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTC=0x00;
      DDRC=0x00;
      
      
      // Port D initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTD=0x00;
      DDRD=0x00;
      
      
      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: Timer 0 Stopped
      // Mode: Normal top=0xFF
      // OC0 output: Disconnected
      TCCR0=0x00;
      TCNT0=0x00;
      OCR0=0x00;
      
      
      // Timer/Counter 1 initialization
      // Clock source: System Clock
      // Clock value: Timer1 Stopped
      // Mode: Normal top=0xFFFF
      // OC1A output: Discon.
      // OC1B output: Discon.
      // Noise Canceler: Off
      // Input Capture on Falling Edge
      // Timer1 Overflow Interrupt: Off
      // Input Capture Interrupt: Off
      // Compare A Match Interrupt: Off
      // Compare B Match Interrupt: Off
      TCCR1A=0x00;
      TCCR1B=0x00;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;
      
      
      // Timer/Counter 2 initialization
      // Clock source: System Clock
      // Clock value: Timer2 Stopped
      // Mode: Normal top=0xFF
      // OC2 output: Disconnected
      ASSR=0x00;
      TCCR2=0x00;
      TCNT2=0x00;
      OCR2=0x00;
      
      
      // External Interrupt(s) initialization
      // INT0: Off
      // INT1: Off
      // INT2: Off
      MCUCR=0x00;
      MCUCSR=0x00;
      
      
      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x00;
      
      
      // USART initialization
      // USART disabled
      UCSRB=0x00;
      
      
      // Analog Comparator initialization
      // Analog Comparator: Off
      // Analog Comparator Input Capture by Timer/Counter 1: Off
      ACSR=0x80;
      SFIOR=0x00;
      
      
      // ADC initialization
      // ADC disabled
      ADCSRA=0x00;
      
      
      // SPI initialization
      // SPI disabled
      SPCR=0x00;
      
      
      // TWI initialization
      // TWI disabled
      TWCR=0x00;
      
      
      // Alphanumeric LCD initialization
      // Connections are specified in the
      // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
      // RS - PORTA Bit 0
      // RD - PORTA Bit 1
      // EN - PORTA Bit 2
      // D4 - PORTA Bit 4
      // D5 - PORTA Bit 5
      // D6 - PORTA Bit 6
      // D7 - PORTA Bit 7
      // Characters/line: 16
      lcd_init(16);
      
      
      while (1)
            {
                
                 picture_display();
            } 
      }
      آرزوی سرافرازی برای ایران عزیز . . .


      دیدگاه


        #4
        پاسخ : حلقه بی نهایت در برنامه

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

        دیدگاه

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