Elektrotekno.com Ana Sayfa || Pic ve diğer işlemci ve denetleyiciler ile yapılmış devreler, projeler


Lpcxpresso sd kart denemesi

Kayıt: 22 Eyl 2008
Mesajlar: 98

Offline
tekniker_erhan
Tarih: 06 02 2011 15:03

Lpcxpresso kiti alalı bayağı oldu fakat derslerin yoğunluğundan şimdi göz atabiliyorum.Sd kart uygulaması ne zamandır aklımdaydı.Emre arkadaşımda sağolsun sorularımı yanıtsız bırakmadı.Uygulama Elm chanın meşhur fat kütüphanesi ile yapılmıştır.Kodları nxpnin an10916 uygulamasından düzenleyerek yazdım.Sd kart lpc1768 ile ssp0 modülü üzerinden haberleşiyor.Örnek uygulamada sd kart içinde bir metin belgesi oluşturularak içine yazı yazılmıştır.Kodlar keil uvision4'te derlenmiştir.Derlenen kodlar lpcxpresso idesi üzerinden kite atılmıştır.


Lpcxpresso sd kart denemesi

Lpcxpresso sd kart denemesi

Lpcxpresso sd kart pin bağlantıları
Kod


1  gnd
28 vcc
11 di
12 do
13 ck
14 cs


Main yazılımı
Kod
#include <string.h>

#include <stdint.h>
#include <stdbool.h>
#include "lpc17xx.h"
#include "system_LPC17xx.h"
#include "lpc17xx_rtc.h"
#include "integer.h"
#include "diskio.h"
#include "ff.h"



volatile UINT Timer = 0;      /* Performance timer (1kHz increment) */

/* LED indicator */
#define LED1ON()  do {LPC_GPIO0 -> FIOSET |= (1<<22);}while (0)
#define LED1OFF() do {LPC_GPIO0 -> FIOCLR |= (1<<22);}while (0)

/* SysTick Interrupt Handler (1ms)    */
void SysTick_Handler (void)
{           
   static DWORD pres, flip, prescale_disk_io;

   Timer++;

   if ( pres++ >= 500 ) {
      pres = 0;
      if (flip) LED1ON();
      else LED1OFF();
      flip = !flip;
   }

   // Disk timer process to be called every 10 ms
   if ( prescale_disk_io++ >=10 ) {
      prescale_disk_io = 0;
//      disk_timerproc(); /* <- Disk timer process to be called every 10 ms */
   }
}

/*---------------------------------------------------------*/
/* User Provided RTC Function for FatFs module             */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from     */
/* FatFs module. Any valid time must be returned even if   */
/* the system does not support an RTC.                     */
/* This function is not required in read-only cfg.         */

DWORD get_fattime ()
{
   RTCTime rtc;

   // Get local time
   rtc_gettime(&rtc);

   // Pack date and time into a DWORD variable
   return     ((DWORD)(rtc.RTC_Year - 1980) << 25)
         | ((DWORD)rtc.RTC_Mon << 21)
         | ((DWORD)rtc.RTC_Mday << 16)
         | ((DWORD)rtc.RTC_Hour << 11)
         | ((DWORD)rtc.RTC_Min << 5)
         | ((DWORD)rtc.RTC_Sec >> 1);    
}





static void IoInit(void)
{
   RTCTime  current_time;

   SystemInit();

   SysTick_Config(SystemFrequency/1000 - 1); /* Generate interrupt each 1 ms   */

   LPC17xx_RTC_Init ();
   current_time.RTC_Sec = 0;
   current_time.RTC_Min = 0;
   current_time.RTC_Hour = 0;
   current_time.RTC_Mday = 1;
   current_time.RTC_Wday = 0;
   current_time.RTC_Yday = 0;      /* current date 01/01/2010 */
   current_time.RTC_Mon = 1;
   current_time.RTC_Year = 2010;
   LPC17xx_RTC_SetTime( &current_time );      /* Set local time */
   LPC17xx_RTC_Start ();
   LPC_GPIO1 -> FIODIR |= (1U<<28) | (1U<<29) | (1U<<31);      /* P1.16..23 defined as Outputs */      
   LPC_GPIO0 -> FIODIR |= (1U<<22);
}


int main ()
{   char i;
   FRESULT sonuc;
   UINT s1;
   RTCTime rtc;
   DSTATUS durum;
   FATFS surucu;      /* File system object for each logical drive */
   FIL dosya;         // File objects
   char buf[40]="Erhan YILMAZ sd kart denemesi\r\n";
   IoInit();
    durum = disk_initialize(0); //karti hazirla
    sonuc = f_mount(0,&surucu); //Karti aç
    sonuc = f_open(&dosya, "erhan.txt", FA_CREATE_NEW);//Yeni dosya olustur.
    sonuc = f_close(&dosya); //Olusturulan dosyayi kapat
    sonuc = f_open(&dosya, "erhan.txt", FA_WRITE);// Dosyayi yazmak için aç
    for(i=0;i<5;i++) sonuc = f_write(&dosya, buf,strlen(buf), &s1);//dosyaya yaz.   
    sonuc = f_close(&dosya); //dosyayi kapat
    sonuc = f_open(&dosya, "erhan.txt", FA_WRITE);//dosyayi tekrar aç.
    sonuc = f_lseek(&dosya, dosya.fsize);//Dosyanin sonuna git
    sonuc = f_write(&dosya, "bunlarıda sonuna ekle",21, &s1);//dosyayanin sonuna yaz.
    sonuc = f_close(&dosya);// dosyayi kapat.
   for (;;) {

}  }






Reklamlar



Lpcxpresso sd kart denemesi


Benzer Konular
- Kart programlayıcı program istekleriniz buraya!!!
- kombi kart test cihazı şeması
- pic 16f819 ile gps sd-kart logger

- PCMCIA kart üzerinden seri port programlıyıcı

- Kart arıza test cihazları
- Çok katlı kart üretimi.
- Işıklar TM, Bara ve Hat koruma denemesi...Ark şölenine davetlisiniz :)
- Spartan 3 Kart Üzerindeki LEDlerin Yakılması
- Pic ile GSM Sim kart Kopyalama

- sd kart mp3 çalar.

- genesis GNS-102 rf alıcı kart

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Turkiye | Ads by Google Adsense | Design by Crazy Bat based