ranger930 Posted June 13, 2006 Report Share Posted June 13, 2006 Moin,ich möchte für meinen noch nicht fertig gestellten Traktrorcontroller einen Crossfader einbauen,10 k linear, soweit ist dies klar,jetzt meine Frage, habe Sie leider schon mal gestellt, aber die Antwort war nicht zufriedenstellend:Problemstellung:wenn der Crossfader in Mittelstellung ist, soll dies durch eine LED angezeigt werden,nach meiner Erfahrung wird der analoge Spanunngswert in digitale Form umgewandelt,Analog- Digital Wandlung,ist es softwaretechnisch möglich das Poti zu überwachen und diese kleine Widerstandsänderung zu benutzen, um ein " LED an " signal zu setzen ?MfGranger930 Quote Link to comment Share on other sites More sharing options...
Wild_Weasel Posted June 13, 2006 Report Share Posted June 13, 2006 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.Grüssem. Quote Link to comment Share on other sites More sharing options...
MTE Posted September 24, 2006 Report Share Posted September 24, 2006 Hiich hatte heut morgen auch die Idee für meinen Crossfader etc und hab mal ne Lösung geschriebenvoid 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üßeMTEEDIT : 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 ?? Quote Link to comment Share on other sites More sharing options...
ranger930 Posted September 24, 2006 Author Report Share Posted September 24, 2006 Moin,ich habe das schon realisiert:hier mein Code- Auszug :// ---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); }MfG ranger930 Quote Link to comment Share on other sites More sharing options...
MTE Posted September 24, 2006 Report Share Posted September 24, 2006 Super, danke !! :)würdest du Deinen gesamten Code irgendwie Online stellen, würde gerne mal reinschnuppern....bräuchte Vorlagen um meinen ein bisserl zu schrumpfen... :)GrüßeMTE Quote Link to comment Share on other sites More sharing options...
TK. Posted September 24, 2006 Report Share Posted September 24, 2006 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 ??Potiwerte haben eine Aufloesung von 10bit, und somit einen Wertebereich von 0..10237bit erhaelt man, indem man den Wert dreimal nach rechts shifted: (pin_value >> 3)Damit liegt der Wertebereich dann zwischen 0..127Alternativ kann man so wie ranger930 die MIOS_AIN_Pin7bitGet() Funktion verwenden, die macht das gleicheGruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.