mono napisał/a:A to z ciekawości - jakie wartości tam się w takim paddlu pokazują jak fire jest wciśnięty (bo jak zwolniony to zakładam, że 228/229)?
Odwrotnie: jak jest wciśnięty fire2(fire3), to wtedy pokazuje 228. Po to właśnie jest ten rezystor podciągający do plusa zasilania, żeby fire2(fire3) działał na zwarcie do masy, tak samo jak pozostałe styki w joysticku i podstawowy fire1. Defaultowo wejście potencjometryczne jest ściągane do masy, dlatego żeby bez przeróbek mieć tam fire, to trzeba by było przyciskiem zwierać to wejście do plusa zasilania a nie do masy. Nie było by takie rozwiązanie jednak zgodne z tym stosowanym od lat w Amidze, a po drugie tak się nie robi, bo nie powinno występować napięcie zasilania na przyciskach żadnych, lepiej jeśli zwiera się przyciskami wszystko zawsze do masy. Tak że rezystor o którym mowa jest rezystorem podciągającym i ma za zadanie odwracać nam sytuację defaultowo nadając potencjał plusa zasilania wejściu potencjometrycznemu.
Jak się podciągnie do plusa rezystorem, to paddle pokazuje wartość 2/3 zazwyczaj, a czasami 4 może pokazać nawet. Przy czym nie zależy to od wartości tego rezystora, tylko od egzemplarza Atari (z moich obserwacji). Ten rezystor nadaje potencjał wejściu potencjometrycznemu, a na nim samym nie występuje spadek napięcia. Napięcie przed i za rezystorem jest takie samo.
Wartości wskazywane przez paddle przy różnych rozwiązaniach zgodnych z Joy2B+ z tego co zaobserwowałem doświadczalnie, wahają się nieznacznie przy różnych egzemplarzach Atari. W rozwiązaniach "mechanicznych" występuje dodatkowo często problem śniedziejących styków i jak rośnie przez to opór na przycisku fire, to z kolei po wciśnięciu tego fire paddle nie pokazuje 228/229, tylko mniejsze wartości. Połączenie od plusa zasilania poprzez rezystor podciągający dalej przez przycisk fire do masy, stanowi dzielnik napięcia. I teraz jeśli rezystancja jakaś się pojawia na samym przycisku, to im mniejszy mamy ten rezystor podciągający, tym bardziej rezystancja przycisku ma wpływ na zmianę liczby na mniejszą z 228/229. Więc chociażby z tego powodu również warto dawać większy ten rezystor.
Biorąc też pod uwagę powyższe rozważania, warto odpowiednio oprogramowywać drugi i trzeci fire w grach tak, żeby zniwelować wpływ rodzaju rozwiązania w różnych joystickach na sposób działania samej gry. Ja zalecam oprogramowywać to tak, żeby interpretację fire przyjmować na jakiejś bezpiecznej granicy. Czyli nie sprawdzać np. czy jest 228, albo czy jest 2/3, tylko podzielić ten zakres np. na pół. Generalnie bierzemy wartość paddle i tesujemy sobie jako fire jeden ze starszych bitów, np. 128, albo 64, albo 32. I od tego bitu uzależniamy nasz wynik odczytu i interpretację czy przycisk jest wciśnięty czy odpuszczony.