Witam,
Od dłuższego czasu próbuje zrobić funkcję w C, zamieniającą wartość char (zakres 0-99) na wartość BCD, gdzie oba półbity będą upakowane w jednej zmiennej.
Szukałem w Inetrnecie i jest kilka takich procedur, ale żadna mi nie działa. Czytałem nawet rekomendację Atmela, ale nie wychodzi mi implementacja zawartego tam algorytmu.
Chodzi mi o to, by wyświetlić wartość np. temperatury na 2 wyświetlaczach 7-segmentowych i muszę mieć każdą cyfrę dla każdego wyświetlacza. Program mam mniej więcej taki:
tutaj dla przykładu wpisałem temperaturę na twardo
zmienne "cyfra1" i "cyfra2" są typu char i są pointerami do tablicy z kombinacją segmentów, czytelnych dla człowieka.
Od dłuższego czasu próbuje zrobić funkcję w C, zamieniającą wartość char (zakres 0-99) na wartość BCD, gdzie oba półbity będą upakowane w jednej zmiennej.
Szukałem w Inetrnecie i jest kilka takich procedur, ale żadna mi nie działa. Czytałem nawet rekomendację Atmela, ale nie wychodzi mi implementacja zawartego tam algorytmu.
Chodzi mi o to, by wyświetlić wartość np. temperatury na 2 wyświetlaczach 7-segmentowych i muszę mieć każdą cyfrę dla każdego wyświetlacza. Program mam mniej więcej taki:
temperatura=45;
temperatura=bin2bcd(temperatura);
cyfra1= temperatura & 0xF0; //dziesiatki
cyfra2= temperatura & 0x0F; //jedności
tutaj dla przykładu wpisałem temperaturę na twardo
zmienne "cyfra1" i "cyfra2" są typu char i są pointerami do tablicy z kombinacją segmentów, czytelnych dla człowieka.