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=§or[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=§or[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 !!
}
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