Lütfen yardım Lcd yazılan karakteri karşılaştırmak

Başlatan emrez, 22 Eylül 2008, 14:05:49

emrez

arkadaşlar lcd gezgini için kodlar aşağıdaki gibi, ben buraya LCDsetcursorposition(0x00); değerindeki yazıyı bir karaktere eşitleyip karşılaştırma yapmak istiyorum. ama str yi char* ile karaktere dönüştürüyor ben short xx; deyip  xx=srt; yapamıyorum. amacım
xx==yy ise şunu yap demek. lcd (0x00) ile (0x40) alt ve üst satır adresleri bunları karşılaştırıp satır sonunda her ikisinede aynı karakteri basıyor. örnek 100.mp3 üstte listelenecek birşey yoksa 100.mp3 alttada çıkıyor ben üstteki ile alttaki yazılanlar aynı ise altı clear yapacağım.
Benim için çok önemli lütfen bir usta yardım etsin.
#include <math.h>
#include <stdio.h>
#include <delays.h>
#include <usart.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>

#include "fat32\gezgin.h"
#include "fat32\fat32.h"
#include "dosya.h"

#include "main.h"
#include "lcd.h"
#include "utils.h"
#include "sdcard.h"



static unsigned short scrolloffset=0;


int _user_putc(char c)
{
   WriteLCD_D(c);
   wait_lcd ();
}

void printfkarakter(char * str)
{
   unsigned short i,j,c;

   printf((const far rom char *)"%s         ",str);
   
   }

}
void start_ihm(void)
{
   struct DirectoryEntry *pDirEnt;
   unsigned char testsdcard,sdcardnotfound;
   unsigned char sd_status[8],i;
   // start up message
   PIN5();   
   LCDsetcursorposition(0x00);
   printf((const far rom char *)" Hazirlanıyor");
   udelay(20000);
   udelay(20000);
   LEDOFF();


   //Temizle LCD.
   lcd_clear(2);

   do
   {
      
      if( CARD_Init())
      {
           sdcardnotfound=0;
           testsdcard=0;
   
         lcd_clear(0);
         LCDsetcursorposition(0x40);      
         printf((const far rom char *)"   Okunuyor FAT32  ");
   
               
           if(!fatInit())
           {
            pDirEnt = browseInit();
            if (pDirEnt != NULL)
            {
               do
               {
                  LCDsetcursorposition(0x00);   
                  printfkarakter((char*)pDirEnt->longName);
                  pDirEnt = browseNextEntry();
                  LCDsetcursorposition(0x40);      
                  printfkarakter((char*)pDirEnt->longName); // alt satır
                  pDirEnt = browsePreviousEntry();
                  udelay(20000);
                  udelay(20000);
                  udelay(20000);
                  udelay(20000);
   
                  if(PORTBbits.RB7==0)
                  {
                     
                     scrolloffset=0;
                     pDirEnt = browseNextEntry();
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                           lcd_clear(0);
                  }
   
                  if(PORTBbits.RB6==0)
                  {
                     if(!(pDirEnt->attributes & FAT_ATTR_DIRECTORY))
                     {    
                        LCDsetcursorposition(0x00);   
                        scrolloffset=0;
                        printfkarakter((char*)pDirEnt->longName);
                        // start emulation
                        opendosya(pDirEnt);
                     }
                     else
                     {
                        scrolloffset=0;
                        pDirEnt = browseOpenDir(0);
                     }
   
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                           lcd_clear(2);
                  }
                     
                  
   
                  if(PORTBbits.RB4==0)
                  {
                     
                     scrolloffset=0;
                     pDirEnt = browsePreviousEntry();
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                     udelay(20000);
                     lcd_clear(0);
                  }
   
   
                       if(testsdcard>3)
                       {
                     testsdcard=0;
                           //CARD_Status(sd_status);
                     if(!CARD_OperatingConditions(sd_status))//sd_status[0]&0x80)
                           {
                           sdcardnotfound=1;
                     }
                     else
                     {
                        sdcardnotfound=1;
                        for(i=0;i<4;i++)
                               {
                            if(sd_status!=0x00 && sd_status!=0xff)
                            {
                              sdcardnotfound=0;
                            }
                               }
   
                     }
                  }
                  testsdcard++;
               }while(!sdcardnotfound);
            
            }
            else
            {
               LCDsetcursorposition(0x40);      
               printf((const far rom char *)"  Sd bos   ");
            }
           }
           else
           {
             pDirEnt= NULL;

           }

      }
      else
      {
         lcd_clear(2);
         LCDsetcursorposition(0x00);
         printf((const far rom char *)"   dosya bulunamadi ");
         udelay(20000);
         udelay(20000);
         udelay(20000);
         udelay(20000);
      }
   
   }while(1);

ferdem

Alıntı Yap
LCDsetcursorposition(0x00); değerindeki yazıyı bir karaktere eşitleyip karşılaştırma yapmak istiyorum.
Bu fonksiyon o adresteki veriyi döndürmez, sadece imleci o adrese konumlandırır. İmleci okumak istediğiniz adrese konumlandırdıktan sonra ayrıyeten okuma işlemi yapmanız gerekir. Şu başlığı inceleyebilir veya lcd nizin katalogundan okuma işlemini nasıl yapabileceğinize bakabilirsiniz:
https://www.picproje.org/index.php/topic,21140&highlight=

İyi çalışmalar.

emrez

pDirEnt gezginci ->longName kullanıldığında gezgincinin o zamanda listede bulunan dosyayı fprint ile yazdırıyorum. öyle birşey yapmalıyımki  sonraki() önceki() ile çağırdığımda gezginci pDirEnt->longName aynı dosyayı getiriyorsa ben bunu kullanayım. if ( pDirEnt->longName 1. ==pDirEnt->longName 2.inci) ise şunları yap diyebileyim. bunu bir türlü yapamıyorum. pdır browser içinde director.longname (dosya ismi) director.size (dosya boyutu) bilgilerini kapsıyor.