اطلاعیه

Collapse
No announcement yet.

کمک در مورد کارت حافظه در کدویژن

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

    کمک در مورد کارت حافظه در کدویژن

    سلام دوستان، من میتونم توسط دستورات زیر در کارت حافظه بنویسم، الان سوالم اینه چطور میتونم هشدار برای قرار نگرفتن کارت حافظه رو ایجاد کنم، مثلا اگه کارت حافظه در اسلات قرار داده شد، یه پیام بده اوکی و اگر قرار داده نشده بگه not insert مرسی.

    اینم همون کد نوشتن در کارت حافظه: الان توو این کد من چه کارت حافظه رو قرار بدم و چه ندم پیام اوکی میده بهم!!


    #include <mega32a.h>
    #include <i2c.h>
    #include <ds1307.h>
    #include <alcd.h>
    #include <ff.h>
    #include <sdcard.h>
    #include <delay.h>

    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    // Reinitialize Timer 0 value
    TCNT0=0x64;
    disk_timerproc();

    }

    void main(void)
    {
    FATFS drive;
    FIL file;
    unsigned int i;
    char lcd_buff[20]={"hello word"};

    // Timer Period: 9.984 ms
    TCCR0=(1<<CS01) | (1<<CS00);
    TCNT0=0x64;
    OCR0=0x00;
    TIMSK=(1<<TOIE0);
    #asm ("sei")
    i2c_init();
    rtc_init(0,0,0);
    lcd_init(20);

    while(f_mount(0,&drive)!=FR_OK);
    lcd_clear();
    lcd_putsf("init OK");
    delay_ms(500);
    while(f_open(&file,"Bayati.txt",FA_OPEN_ALWAYS));
    lcd_clear();
    lcd_putsf("file opend");
    delay_ms(500);
    delay_ms(500);
    while(f_open(&file,"Bayati.txt",FA_WRITE));
    lcd_clear();
    lcd_putsf("Writing...");
    delay_ms(500);

    while(f_write(&file,&lcd_buff,15,&i)!=FR_OK);
    lcd_clear();
    lcd_putsf("file writed");
    delay_ms(500);
    f_close(&file);
    lcd_clear();
    lcd_putsf("file close");


    while (1)
    {
    // Place your code here
    }
    }

    #2
    پاسخ : کمک در مورد کارت حافظه در کدویژن

    نوشته اصلی توسط pedram0032 نمایش پست ها
    سلام دوستان، من میتونم توسط دستورات زیر در کارت حافظه بنویسم، الان سوالم اینه چطور میتونم هشدار برای قرار نگرفتن کارت حافظه رو ایجاد کنم، مثلا اگه کارت حافظه در اسلات قرار داده شد، یه پیام بده اوکی و اگر قرار داده نشده بگه not insert مرسی.

    اینم همون کد نوشتن در کارت حافظه: الان توو این کد من چه کارت حافظه رو قرار بدم و چه ندم پیام اوکی میده بهم!!

    کد PHP:


    #include  <mega32a.h>
    #include  <i2c.h>
    #include  <ds1307.h>
    #include  <alcd.h>
    #include  <ff.h>
    #include  <sdcard.h>
    #include  <delay.h>

    interrupt [TIM0_OVFvoid timer0_ovf_isr(void)
    {
    // Reinitialize Timer 0 value
    TCNT0=0x64;
    disk_timerproc();

    }

    void main(void)
    {
    FATFS drive;
    FIL file;
    unsigned int i;
    char lcd_buff[20]={"hello word"};

    // Timer Period: 9.984 ms
    TCCR0=(1<<CS01) | (1<<CS00);
    TCNT0=0x64;
    OCR0=0x00;
    TIMSK=(1<<TOIE0);
    #asm ("sei")
    i2c_init();
    rtc_init(0,0,0);
    lcd_init(20);

    while(
    f_mount(0,&drive)!=FR_OK);
    lcd_clear();
    lcd_putsf("init OK");
    delay_ms(500);
    while(
    f_open(&file,"Bayati.txt",FA_OPEN_ALWAYS));
    lcd_clear();
    lcd_putsf("file opend");
    delay_ms(500);
    delay_ms(500);
    while(
    f_open(&file,"Bayati.txt",FA_WRITE));
    lcd_clear();
    lcd_putsf("Writing...");
    delay_ms(500);

    while(
    f_write(&file,&lcd_buff,15,&i)!=FR_OK);
    lcd_clear();
    lcd_putsf("file writed");
    delay_ms(500);
    f_close(&file);
    lcd_clear();
    lcd_putsf("file close");

    while (
    1)
          {
          
    // Place your code here
          
    }


    while(f_mount(0,&drive)!=FR_OK);


    کاری که میتونید انجام بدید اینه که بررسی کنید درایو درست بارگذاری شده یا نه که با رنگ قرمز نشون دادم
    من خودم ترجیح میدم حلقه for بکار ببرم تا از تعداد دفعات خطا آگاه بشم و برنامه توی یه حلقه بینهایت گیر نکنه
    جدیدترین ویرایش توسط ASHIT AXAR; ۰۸:۴۶ ۱۳۹۵/۰۷/۲۸.
    If the wind will not serve, take to the oars

    دیدگاه


      #3
      پاسخ : کمک در مورد کارت حافظه در کدویژن

      توابع ff بعد از اجرای عملکردشون مقادیر مختلفی رو بر میگردونن. برای لاک بودن کارت یا عدم وجود کارت و ... اعداد مختلفی رو برمیگردونن و میتونید از این اعداد برای اینکار استفاده کنید. نیاز بود بگید بیشتر توضیح بدم.
      www.gam-co.blogsky.com

      دیدگاه


        #4
        پاسخ : کمک در مورد کارت حافظه در کدویژن

        سلام میتونی فایل برنامتو اینجا آپلود کنی یا حداقل بگی کتابخانه هاشو از کجا دانلود کنم
        مرسی

        دیدگاه


          #5
          پاسخ : کمک در مورد کارت حافظه در کدویژن

          نوشته اصلی توسط vahidabedi نمایش پست ها
          توابع ff بعد از اجرای عملکردشون مقادیر مختلفی رو بر میگردونن. برای لاک بودن کارت یا عدم وجود کارت و ... اعداد مختلفی رو برمیگردونن و میتونید از این اعداد برای اینکار استفاده کنید. نیاز بود بگید بیشتر توضیح بدم.
          سلام، میشه به مثال توضیح بدین که چطوری عدم وجود کارت رو در ال سی دی نمایش بده
          مرسی

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          نوشته اصلی توسط ASHIT AXAR نمایش پست ها

          while(f_mount(0,&drive)!=FR_OK);


          کاری که میتونید انجام بدید اینه که بررسی کنید درایو درست بارگذاری شده یا نه که با رنگ قرمز نشون دادم
          من خودم ترجیح میدم حلقه for بکار ببرم تا از تعداد دفعات خطا آگاه بشم و برنامه توی یه حلقه بینهایت گیر نکنه
          مرسی، میشه با مثال توضیح بدین که چطور این کار رو انجام بدیم؟

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          نوشته اصلی توسط minefield نمایش پست ها
          سلام میتونی فایل برنامتو اینجا آپلود کنی یا حداقل بگی کتابخانه هاشو از کجا دانلود کنم
          مرسی
          سلام، فایل کتابخونه در خود کدویژن قرار داره، ورژن کدویژن من 3.12 هستش. برنامه هم دقیقا همونی هستش که در پست اول قرار دادم و دوستان لطف کردن در پست دوم بهتر نمایشش دادن.

          دیدگاه


            #6
            پاسخ : کمک در مورد کارت حافظه در کدویژن

            شما تمامی توابعتون رو به این صورت بنویسید. یعنی مقدار برگشتی رو توی یه متغیر بریزید. مثلا اینطوری:
            res=f_open(&file,path2,FA_WRITE);
            حالا بسته به اینکه مقدار res چند باشه یکی از پیامهای زیر چاپ میشه:
            void error(FRESULT res){
            if ((res>=FR_DISK_ERR) && (res<=FR_TIMEOUT))
            sprintf(lcd_buf,"%p",error_msg[res]);
            glcd_clear();
            glcd_puts(lcd_buf,0,6,0,1,1);
            delay_ms(2000);
            }
            flash char * flash error_msg[]=
            {
            "", /* not used */
            "FR_DISK_ERR",
            "FR_INT_ERR",
            "FR_INT_ERR",
            "FR_NOT_READY",
            "FR_NO_FILE",
            "FR_NO_PATH",
            "FR_INVALID_NAME",
            "FR_DENIED",
            "FR_EXIST",
            "FR_INVALID_OBJECT",
            "FR_WRITE_PROTECTED",
            "FR_INVALID_DRIVE",
            "FR_NOT_ENABLED",
            "FR_NO_FILESYSTEM",
            "FR_MKFS_ABORTED",
            "FR_TIMEOUT"
            };
            www.gam-co.blogsky.com

            دیدگاه

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