Przedstawię problem dokładniej.
W pliku lcd.h są definicje portów i numerów pinów, które lcd używa w bibliotece.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W pliku lcd.c są rozwijane za pomocą makr
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
do postaci np.:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
która kompiluje się do postaci zajmującej tylko 2 bajty w pamięci programu:
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Problem jest taki, że chciałbym zastosować dwa oddzielne LCD podłączone do jednego mikrosterownika. I tutaj zrodził się problem z którym nie moge sobie poradzić. Bo najprościej byłoby kopiować całą bibliotekę (pliki lcd.h i lcd.c na lcd2.h i lcd2.c), a następnie zmienić definicje portów i pinów. Ale powoduje to kolejne problemy do rozwiązania. W języku C nie można przeładowywać funkcji, więc należałoby zmienić również nazwy wszystkich funkcji w bibliotece drugiego lcd. Rozmiar kodu robiącego prawie to samo, zwiększyłby się dwukrotnie, co uważam za bezsens. Więc jak to zrobić? Podsumowując chciałbym mieć dodatkowy plik nagłówkowy dla każdego lcd, w którym byłyby zdefiniowane porty i piny, ale kod funkcji był jednokrotnie napisany. Coś w rodzaju:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Więc jak to zrobić?