Hallo,
ich möchte gerne eine Orgelkonsole bauen, in der ich 4 Manuale (FATAR, 8x8-Diodenmatrix) und ein Pedal verbaut habe. Nun möchte ich einen möglichst effizienten und zuverlässigen Scanner für diese Klaviaturen bauen. Ich hab mir schon mal das Beispiel "sm_c_example1_v1c.zip" auf der Download-Seite von ucapps.de geladen. Funktioniert auch ganz toll!
Nun 3 Fragen:
1. Wenn ich 4 Klaviaturen anschließen möchte, ist es dann besser, 4 8x8-Matrix-Scanner zu implementieren? Wenn ja, muss ich die Assembler-Routine 4x bereitstellen, oder wie funktioniert das?
Oder soll ich besser eine 16x16-Matrix bauen, mit der ja dann 256 Tasten eingescannt werden können? Was ist performanter? (Die Manuale in einer 16x16-Diodenmatrix bereitzustellen, wäre kein Problem)
Mir geht es in diesem Fall um die Assembler-Routine (ich habe keine Erfahrung mit Assembler) - was muss ich hier ändern, um eine 16x16er Matrix zu implementieren? (Dazu brauch ich ja 16xDIN und 16xDOUT)
2. Ich möchte die verbleibenden 112 IOs natürlich für Registertaster weiterverwenden. Ist das mit einem PIC machbar, oder setzt man für solch einen Aufbau lieber für jedes Manual einen eigenen PIC ein, die dann alle per MIDI in Reihe geschalten werden? Das ganze sollte halt mit möglichst geringer Latenz realisiert werden.
3. Es gibt da noch einen "superfast 80us" Matrix-Download: "sm_c_example2_v1c.zip". Nur hier wird in der INIT-Routine die Shift-Register-Treiber über MIOS abgeschalten:
MIOS_SRIO_NumberSet(0); // DONT USE THE MIOS SRIO DRIVER!!!
Ich finde hier keine Einstellung welches Shift-Register für den Scanner hergenommen wird (möchte das selbst wählen können) und kann man hier die restlichen IOs der Shiftregister trotzdem als normale DIN und DOUTs verwendet werden? Wenn ja, wie?
Gruß
Stephan