Help Converting Code to S12XE

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Help Converting Code to S12XE

453 Views
rayhall
Contributor V

I am converting code for Atmel AVR to suit CodeWarrior and the S12XE. I have most of it done, but I am getting errors with the function below. It relates to (void)*vi=&i;

 

I do not understand what a void variable is. So do not know what is wrong or how to fix it.

 

Ray.

 

 

unsigned long int fat_getNextCluster(unsigned long int oneCluster){   

 

      unsigned long int i,j;

 

  // FAT 16**************FAT 16   

  if(fat.fatType==16){                   

                                                //    i=oneCluster/256

     i=oneCluster>>8;;            // errechnet den sektor der fat in dem oneCluster ist (rundet immer ab)

                                                // j=(oneCluster-256*i)*2 == 2*oneCluster-512*i

       j=(oneCluster<<1)-(i<<9);    // errechnet das low byte von oneCluster in dem ausgelesenen sektor der fat (high und low byte enthalten den folge cluster)

           

       if(0==fat_loadSector(i+fat.fatSec)){        //    neu laden nicht nötig                                   

          i=0; 

         (void)*vi=&i;                                // zeiger auf i

          bytesOfSec=&sector[j];                      // zeiger auf puffer

          *(unsigned char*)vi=*bytesOfSec;            // setzen low byte von i, aus puffer

          vi++;                                        // zeigt auf nächst höheres byte in i

          bytesOfSec++;                                // nächst höheres byte in puffer

          *(unsigned char*)vi=*bytesOfSec;            // setzen von höherem byte in i, aus puffer

          return i;                                    // gibt neuen cluster zurück (oder 0xffff)

       }   

    }

 

  // FAT 32**************FAT 32   

  if(fat.fatType==32){

                                                // i=oneCluster/128

       i=oneCluster>>7;            // errechnet den sektor der fat in dem oneCluster ist (rundet immer ab)

                                                // j=(oneCluster-128*i)*4 == oneCluster*4-512*i

       j=(oneCluster<<2)-(i<<9);    // errechnet das low byte von oneCluster in dem ausgelesenen sektor der fat (high und low byte enthalten den folge cluster)       

       

      if(0==fat_loadSector(i+fat.fatSec)){        //    neu laden nicht nötig          

         void *vi=&i;

         bytesOfSec=&sector[j];

         *(unsigned char*)vi=*bytesOfSec;

         vi++;

         bytesOfSec++;

         *(unsigned char*)vi=*bytesOfSec;    

         vi++;

         bytesOfSec++;     

          *(unsigned char*)vi=*bytesOfSec;

         vi++;

         bytesOfSec++;

         *(unsigned char*)vi=*bytesOfSec;    

         return i;

      }   

  }       

 

  return(0);                                    // neuladen des fat sektors, in dem oneCluster ist nötig !!       

}

Labels (1)
0 Kudos
Reply
1 Reply

370 Views
RadekS
NXP Employee
NXP Employee

Hi Ray,

I suppose that this thread is identical copy of your previous question: https://community.freescale.com/thread/382775

Have a great day,
RadekS

0 Kudos
Reply