Also ich würd das ganze ja über das C Interface machen.
Also wenn der Pot Wert zwischen 63 und 65 liegt den ensprechenden Dout pin auf high setzen.
Ist ein einzeiliger IF befehl soweit ich das beurteilen kann.
Allerdings wie genau kann ich dir noch nicht sagen da ich mich bis jetzt nur mit Buttons und Encodern im C Interface beschäftigt habe.
Ich kanns nur wiederholen. Mit C kann man jeden möglichen Sch… machen. Es ist echt unglaublich.
Hab erst auch nicht gedacht das ich mich da je auskennen werde aber nach ca. 1 Woche herumbasteln kam dann die Firmware für meine Traktorbox raus. Und die kann GENAU das was ich will.
ich hatte heut morgen auch die Idee für meinen Crossfader etc und hab mal ne Lösung geschrieben
void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam
{
MIOS_MIDI_BeginStream();
MIOS_MIDI_TxBufferPut(0xb0);
MIOS_MIDI_TxBufferPut(pin);
MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); // 7bit pot value
MIOS_MIDI_EndStream();
MIOS_LCD_Clear();
MIOS_LCD_CursorSet(0x00);
MIOS_LCD_PrintCString("Fader / Pot");
MIOS_LCD_CursorSet(0x40);
MIOS_LCD_PrintBCD4(pin);
MIOS_LCD_PrintBCD4(MIOS_AIN_Pin7bitGet(pin));
if(pin == 20) // Pin des Potis/Faders
if(pin_value > 500) // ????????????????????
{
MIOS_DOUT_PinSet(8, 1); // 8 ist Dout-Pin 8, 1 für An ;)
}else{
MIOS_DOUT_PinSet(8, 0);
return;
}
}
So geht ab Potiwert “63” die LED an und bleibt an…
komischerweise ging if(pin_value > 63) nicht…ich spielte 10 minuten rum und gab einfach mal zum Spaß 500 ein…Zufall…das ist seltsamerweise genau der Potiwert 63…kann mir das mal einer erklären ???
So jetz muß ich nur noch das Ausschalten der LED rauskniffeln und dann passts
Grüße
MTE
EDIT : Ich sah grad die pin_value ist als unsigned int definiert…d.h. die value ist auf 8 bit geteilt ?? dann wäre 512 potiwert 64 ??
// ---if crossfader is in middle position positionswitch led on-----------
value_ain_pin=MIOS_AIN_Pin7bitGet (24); // read value from crossfader
if (value_ain_pin == 0x40)
{
MIOS_DOUT_PinSet(7,1);
}
else
{
MIOS_DOUT_PinSet(7,0);
}