Hey
jeg sidder og leger lidt med noget c kode, og der går total ged i det... assambler er keil...
void readadc(void) { char adh,adl,chid; unsigned int regn; if(ADCI==1) { adl = ADCDATAL; adh = ADCDATAH; chid = (adh & 0xf0);
adh = adh & 0x0f;
regn = adh * 0xf0;
printf ("\t ADC %03d:%03d %1d \n",(int)adh,(int)adl,(int)chid/16); ADCI = 0; } }
Problemet ligger i jeg gerne vil have lavet adl og adh til en variabel derfor har jeg lagt dem i 2 char (8bit), som jeg så gerne vil have over i en integer... jeg regnede med at gøre det ved at ligge den øverste del over i (bemærk den adh er kun den nederste nibbel jeg bruger resten er and'et væk) regn og vil gange det med 16, for at flytte det 4 bit opaf (mener det skulle virke) og derefter or adl over i den nederste del af reg, men det er ikke lavet endnu når jeg laver den linie regn = adh * 16, så flipper mit board helt ud....
hvad går der lige galt siden jeg ikke kan gøre det ?
nogle der har en smartere måde.. er lidt grøn i d et c noget
Kasper