| Autor | Neuer Beitrag |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 316 | Hallo, ich möchte über Kanal 6 (Schalter) an Flightctrl J16 LED´s schalten. Kann ich das Flightctrl beibringen, ohne das Hex zerlegen zu müssen? Mit C hab´ ich leider nichts am Hut. Ein Detail: J16 soll an einer Konstantstromquelle einen "Shutdown-Pin" ansteuern... Gruß kaadesign _______________ Open Source,- die stille Revolution... ... und nichts hält länger als ein Provisorium! |
| | |
| Mitglied Registriert seit: May 2007 Beiträge: 22 Ort: Soest | Hallo kaadesign,
leider geht das nur, wenn Du den Sourcecode änderst und neu compilierst.
Ich hab das mal gemacht. Die beiden Transistorausgänge J16 und J17 lassen sich mit den Potis auf Kanal 6 und 7 schalten.
Dazu habe ich zuerst in main.h 4 Variablen definiert.
// neue Hardware #define ROT_OFF PORTB &=~0x01 #define ROT_ON PORTB |= 0x01 #define ROT_FLASH PORTB ^= 0x01 #define GRN_OFF PORTB &=~0x02 #define GRN_ON PORTB |= 0x02 #define GRN_FLASH PORTD ^= 0x02 #define LED1_ON PORTC |= 0x04 #define LED1_OFF PORTC &=~0x04 #define LED2_ON PORTC |= 0x08 #define LED2_OFF PORTC &=~0x08
dann habe ich in fc.c folgenden Code hinzugefügt:
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // neue Werte von der Funke // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if(!NewPpmData-- || Notlandung) { ParameterZuordnung(); StickNick = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P; StickNick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D; StickRoll = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P; StickRoll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D; StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
GyroFaktor = ((float)Parameter_Gyro_P + 10.0) / 256.0; IntegralFaktor = ((float) Parameter_Gyro_I) / 44000;
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0; if(GyroFaktor < 0) GyroFaktor = 0; if(IntegralFaktor < 0) IntegralFaktor = 0; if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] > 75) LED1_ON; else LED1_OFF; if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] > 75) LED2_ON; else LED2_OFF; }
Man kann natürlich statt 75 auch einen anderen Wert einsetzen,sodaß auch ein Schalter benutzt werden kann. Die Änderung im Code ist minimal und lohnt sich meiner Meinung nach.
Gruß Smartie |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 316 | Hallo Smartie, vielen Dank! ...genau Deinen Text hatte ich hier im Forum schon gefunden... hab zwar noch nicht mal was zum compilieren,- man scheint aber wohl nicht drumherum zu kommen... Gruß kaadesign Edit: Ohne Linux scheint wohl nix zu gehen,- hab für mein win98 kein Tool gefunden,- würde sich jemand freundlicherweise bereit erklären, die oben genannten Zeilen ins Hex reinzupacken? Könnte mir vorstellen, daß noch mehr "C" - Analphabeten diese Hex gut gebrauchen könnten. Der Wert 75 sollte eigentlich auch problemlos bei einem Schalter funktionieren, oder? _______________ Open Source,- die stille Revolution... ... und nichts hält länger als ein Provisorium! |
| | |
| Mitglied Registriert seit: Jun 2007 Beiträge: 260 | WinAVR geht nicht unter Win98? Als Vorraussetzung steht mal nur "32-bit Windows". Kannst ja mal testen, falls noch nicht geschehen: http://winavr.sourceforge.net/ |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 316 | Hallo, kann mit winavr nix anfangen,- zu kryptisch... Lade gerade avrstudio von atmel runter... vielleicht geht da was... Edit:astudio läuft auch nicht... mal warten, bis Holger zurück ist... _______________ Open Source,- die stille Revolution... ... und nichts hält länger als ein Provisorium! |
| | |
| Mitglied Registriert seit: Jun 2007 Beiträge: 41 | Hi, kaadesign meinte Hallo,
kann mit winavr nix anfangen,- zu kryptisch...
was ist Dir denn da zu kryptisch ??? Einfach mit Programmers-Notepadd öffnen und bei Tools ein Make Clean und Make All machen. Gruß, Marco |
| | |
| MK-Betatester Registriert seit: Apr 2007 Beiträge: 770 Ort: bei Heilbronn | Hi smartie,
hab deine Erweiterung gerade eingebaut und werde das dann dieses Wochenende mal testen.
Hast du einen Idee, wie man Kanal 8 der Fernsteuerung auf eine Variable schreiben kann? Bisher gehts ja nur bis Kanal 7 für Poti 3.
Schönes Wochenende Jochen |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 2244 | joko meinte Hast du einen Idee, wie man Kanal 8 der Fernsteuerung auf eine Variable schreiben kann? Bisher gehts ja nur bis Kanal 7 für Poti 3.
Das interessiert auch mich. Holger gibt ja eigentlich 4 Optionen vor, nämlich POT1...3 und Schalter (Höhe). Außerdem haben viele Funken > 7 CH. |
| | |
| MK-Betatester Registriert seit: Apr 2007 Beiträge: 770 Ort: bei Heilbronn | Soweit ich das verstanden hatte, gibt es nicht 4 sondern nur 3 Funktionen. Die Höhenregelung wird doch über eines der Poti 1-3 ein-/ausgeschaltet.
Jochen |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 2244 | joko meinte Soweit ich das verstanden hatte, gibt es nicht 4 sondern nur 3 Funktionen. Die Höhenregelung wird doch über eines der Poti 1-3 ein-/ausgeschaltet.
Jochen
Doch, 4 parallel z.B. im Menü "Höhe": 3 Potis (Höhe für P-Anteil, Luftdruck D-Anteil und Z ACC-Wirkung) und den Schalter. Nimmste den POT1 für den Schalter, musste auf einen durch Poti einstellbaren Parameter verzichten, oder? Das ist tragisch, aber bestimmt in der Soft leicht zu ändern. |
| | |
| MK-Betatester Registriert seit: Apr 2007 Beiträge: 770 Ort: bei Heilbronn | mmh, wo kann ich denn einen Schalter auswählen und auf welchen Kanal bezieht sich dieser?
Hab den Wert von Poti1 für die Höhenreglung gewählt, welcher Kanal 5 der Fernsteuerung entspricht. (In der Fernsteuerund habe ich dann nen Schalter für Kanal 5 vorgesehen.)
Gerade blick ich es nicht so recht?!?! |
| | |
| Mitglied Registriert seit: Apr 2007 Beiträge: 2244 | joko meinte mmh, wo kann ich denn einen Schalter auswählen
Eben nicht! Du kannst, wie du selber richtig sagst, nur die Auswahl POTx als Schalter "missbrauchen". Wenn du also POT1 als Schalter nimmst, hast du nur noch POT2 und POT3 zur Verwendung übrig. Dem MK ist es schnuppe, ob in POT letztenendes ein wirkliches Senderpoti oder ein Schalter ist. Der Schalter im Sender ist ein "Poti" mit den Endwerten 0 und Maximum (MK-Tool); bzw. beim Schalter mit Mittelstellung -120...0...+120 (PWM). Du könntest sogar bei "Höhe mit Schalter" ein echtes Poti nehmen und das von einem Ende zum anderen reißen... Die These bleibt: du kannst im Kopter 4 fernsteuerbare Parameter parallel konfigurieren, also ist eigentlich ein 8 Kanalsender gut. Das geht aber noch nicht, weil man nur max. 7 Kanäle im MK-Tool zur Verfügung hat. |
| | |
| MK-Betatester Registriert seit: Apr 2007 Beiträge: 770 Ort: bei Heilbronn | ahh,
das ist doch genau das was ich auch meinte und auch so verstanden hatte.
Gut, jetzt stellt sich nur die Frage, wie wir die Software erweitern und Kanal8 auf die noch nicht vorhanden Größe "Poti4" legen können.
Ich bin aus dem Quellcode mal wieder nicht so recht schlau geworden... ;,-(
Jochen |
| | |
| Mitglied Registriert seit: May 2007 Beiträge: 22 Ort: Soest | Ich habe mal versucht auf 8 Kanäle zu erweitern. Da ich eine MC-12 habe, kann ich das aber nicht testen. Der Höhenregler scheint nicht mehr zu funktionieren und der Kompass ist aktiviert.  Wer will kann mal das Hex-File runterladen und flashen. Es sollte aber nicht damit geflogen werden.Im Menü von MK-Tool sollten jetzt Werte für Kanal 8 und Poti4 ausgegeben werden. Auf Analog10 habe ich den Wert von Poti4 gelegt. Der Parameterwert für Poti4 ist 254. Die Frage ist, ob überhaupt was von Kanal 8 ankommt. Also hier liegt das File: http://www.file-upload.net/download-305495/Flight-Ctrl_-Poti4_MEGA644_V0_58.hex.html |
| | |
| MK-Betatester Registriert seit: May 2007 Beiträge: 574 Ort: Otterbach bei Kaiserslautern | Hi,
hast du die diffs greifbar? Die wären interressanter zum mitdenken!
Bye Mikeljo |
| | |
| Mitglied Registriert seit: May 2007 Beiträge: 22 Ort: Soest | |
© Holger Buss & Ingo Busker • Mikrocontroller- & MicroSPS-Forum is powered by UseBB Forum Software