Mam taki problem: w ukladzie jest jedna 51'i trzy identyczne zewnetrzne przetworniki AD. Linie danych i CLK sa wspolne, natomiast linie CS sa podlaczone do trzech roznych pinow 51'. Oczywiscie w danym momencie dziala tylko jeden przetwornik, w zaleznosci od wyboru CS1, CS2 lub CS3. Napisalem funkcje, ktora odczytuje wartosci pierwszego AD, wszystko ok. Ale teraz musze napisac jeszcze dwie funkcje do dwoch pozostalych przetwornikow. Beda one prawie identyczne, roznic sie beda tylko definicja pinu sbit CS1 = P0^0 sbit CS2 = P0^1 sbit CS3 = P0^2. Oczywiscie mozna napisac trzy takie same funkcje z trzema roznymi definicjami CS ale czy jest jakis bardziej elegancki sposob, jakas dyrektywa #?, nie wiem, aby juz w samej funkcji (ktora bylaby jedna dla wszystkich trzech przetwornikow) mozna bylo zamieniac przypisanie sbit? Jak uzaleznic od np zmiennej to ktory pin ma nazwe CS?
teoretycznie widze to tak (oczywiscie pogladowo tylko):
Program w C (Keil).
teoretycznie widze to tak (oczywiscie pogladowo tylko):
int ReadAD(AD, channel)
{
...
if (AD == 1)
sbit CS = P0^0;
else if (AD == 2)
sbit CS = P0^1;
else if (AD == 3)
sbit CS = P0^2;
(...) i tutaj wlasciwy kod programu, np
CLK=0;
CLK=1;
CS=0;
...
return(value);
}
Program w C (Keil).