PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dipschalter abfragen/Gaaaanz viele Ifschleifen umgehen



1hdsquad
15.12.2006, 19:49
Hallihallo,
ich bin mal wieder nicht schlau genug um meinen Mega16 zu programmieren:

1.) Ich möchte Dipschalter abfragen. Da gibt es eine Anweisung in der Hilfe, mit der man den Status eines Pins prüfen kann, aber auch im Memory des Controller Sachen lesen kann. Im Beispiel ist aber nur das Auslesen des Memorys, und ich kriegs mit dem Pin nicht hin. Erbitte Beispielpost...

2.) Ich lese von einem Midiport bestimmte Daten aus und habe letztendlich als max. dreistellige Zahlen vorliegen. Des Weiteren habe ich 30 LEDs, ich lege ein Startzahl manuell beim Starten des Programms fest, bei der die unterste LED leuchtet.
Wie kann ich jetzt die Variablen aus den anderen Variablennamen generieren?

MFG und nicht vergessen: ;-) Bald ist :Weihnacht

1hdsquad
16.12.2006, 16:59
Okay, mit den Pips hat sich schon erledigt. Aber wie mache ich das mit den Variablen???

PicNick
16.12.2006, 18:46
*klingeling*

Ich bin etwas daneben. Du kriegst von MIDI eine Byte-Zahl 0-127, das ist die "NOTE". gut.
Jetzt hast du wahrscheinlich irgendwo 4 Bytes, wo jedes Bit eine LED kontrolliert. Ist das so ? (ho, ho, ho)

1hdsquad
16.12.2006, 21:05
Hä?
Ich hab 30 LEDs, wenn z.B. der Befehl "Note-On" mit der Tastennummer 56 kommt, soll LED 23 leuchten. Wie sage ich ihm das, ohne 30 If-Schleifen aufzubauen (If X = 49 then led19 = 1, If X = 50 then led20 = 1, ...).
Kann ich aus dem Inhalt eines Strings einen neuen Variablennamen generieren (X = 47, Y = LED, neue Variable = LED47(X+Y))?
MFG

PicNick
17.12.2006, 09:14
Uiui. So geht das nicht
Normalerweise mach man das mit array



DIM led (30) as Byte
dim led_nummer as byte

IF midi_note > 29 then
led_nummer = midi_note - 29
led(led_nummer) = midi_lautstarke
end if

1hdsquad
17.12.2006, 15:53
Ok, probier ich mal aus. Danke schön!
Ach ja: Bei MAXScript konnte man einen String ausführen, den man sich ja erst beliebig zusammenbasteln konnte. Herrlich! \:D/ Das geht hier nicht?
MFG

PicNick
17.12.2006, 16:46
Das ist der Unterschied Compiler <> Interpreter.
Bei einem Interpreter geht sowas.

DBZwerg
18.12.2006, 08:47
Kann man anstatt der If..then schleifen nicht auch die Select Case anweisung nehmen?

"Select Case x

Case x = 1
[Anweisung]

case x = 2

[anweisung]

Case else

Print "Fehler" [z.B.]


End Select

DBZwerg
18.12.2006, 08:48
Kann man anstatt der If..then schleifen nicht auch die Select Case anweisung nehmen?

"Select Case x

Case x = 1
[Anweisung]

case x = 2

[anweisung]

Case else

Print "Fehler" [z.B.]


End Select

1hdsquad
18.12.2006, 16:49
Weiß ich nicht, kann ich auch mal schauen...
Mit dem Array hab ich nicht verstanden, kannst du es mal erläutern`?
MFG