Witam
Piszę ponieważ mam dylemat ..
Problem polega na tym, że zwykle do kodowania czy zmiany konfiguracji programu używałem/używam
typowych przełaczników listwowych zwanych DIP SWITH, każdy wie jak takie ustrojstwo wygląda prawda??
Stosuje w tedy kodowanie 4/6/8 bit czyli odpowiednie ułożenie switchy wybiera konfiguracje programu
np:
używam 4 pinow procka dla 4 bitowego kodu DIPSwitch mam do dyspozycji parę kombinacji :
0000
0001
0011
0111
1001
itd ...
Sprawa prosta programowo do zrealizowania zero problemu z wykonaniem itd.
Więc dlaczego piszę ??
Ano dlatego że ze wzgledu na rozmiar urządzenia, i mały procek M168 oraz konieczność użycia 16 wariantów
konfiguracji programu, jedyną możliwością jest użycie obrotowego dipswitcha pracującego w trybie hexagonalnym
i tu mam problem ...
Jak wspomniałem wymagany do realizacji projektu jest ustrojstwo hexagonalne:

które wygląda tak jak na fotce wyżej ,
Tu jest nota ustroju z której jasno wynika tryb pracy switcha :
http://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Customer+Drawing%7F1825008%7FA4%7Fpdf%7FEnglish%7FENG_CD_1825008_A4.pdf%7F1825008-4I tu mały opis działania dla chętnych pomocy w rozgryzieniu ustrojstwa:
- cały swith ma 8 wyprowadzeń
2 z nich to wejście oznaczone w tabelce jako "C" tu podajemy stan GND lub VCC
zależnie od potrzeby
- pozostałe 4 to wyjścia kodu hex gdzie pojawiają się nam stany zgodnie z tabelką
gdzie X to 1 a 0 to poprostu brak stanu ustalonego (jakby noga wisiała w powietrzu)
I tu teraz pytanie jak to ugryźć w "C" dla AVR ??
Chodzi o np. uzyskanie napisu na terminalu lub LCD odpowiadającemu wyborowi na RDSW
* RDSW -- Rotary Dip Switch
--- odrazu powiem ze kombinowanie z switch case mija się z celem
probowałem konwersji hex ASCII i też nic mi to nie dało
Z 10 pozycyjnymi RDSW nie mam problemu , ale one pracuja w kodzie BCD ,
w zwiazku z czym próbowałem konwersji HEX -> BCD z mizernym skutkiem
I w związku z tym pytam tu bowiem już mi brakło pomysłów , nie podaję kodów źródłowych
dlatego, że chciałbym aby rozwiązanie powstało nie jako od zera bez powielania moich nawyków
i błedów .
No i czekam na propozycje ugryzienia problemu.
UPS...
Wkradł się bład w opisie działania RDSW --
mianowicie żle opisałem , a powinno być tak :

piszę tu bo to moze wpłynąc na ocenę działania
a teraz jasno wynika ze X = 1 a 0 = 0 w tabelce .