Problem w c dla 8051 RIDE

Jest sobie procedurka zaczerpnięta z książki p. Jacka Bogusza pt" Programowanie mikrokontrolerów 8051 w C "

Oto procedurka

// funkcja hex na bcd

char Subnumber(unsigned int number , char position) { switch (position) { case 1: return (number/100); break; case 2: number%=100 ; return(number/10); break; case 3: return(number%10); break; default: return(0); break; } }

I w czym problem . Problem w tym że jeżeli ta funkcja jest w listingu ( nawet jeżeli nie ma do niej odwołań ) podczas kompilacji to kod programu nie działa na sprzęcie . Na symulatorze programowym wygląda że działa . Czy ktoś wie jak ten problem rozwiązać ? Może to jest kwestia ustawień w "projekcie" ?? Sam już nie wiem . Natomiast jeżeli zmienna number jest rozmiaru char to funkcja działa prawidłowo w zakresie char i program poprawnie dokonuje konwersji . Pomocy ...

Reply to
kaldachar
Loading thread data ...

In the darkest hour on Mon, 20 Feb 2006 01:06:43 +0100, swinio snipped-for-privacy@buziaczek.pl screamed:

Powinno chodzic, ale wynik bedzie zapisany w tablicy od konca.

Reply to
Artur M. Piwko

Problem nie leży w samym algorytmie ( który teoretycznie jest dobry ) , tylko w tym dlaczego jeżeli kod tej funkcji znajduje się w listingu to po kompilacji program nie działa ( jeżeli zmienna number ma długość int ).

Reply to
kaldachar

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.