Loetkolben Geschrieben September 5, 2013 at 13:24 Geschrieben September 5, 2013 at 13:24 Edit: Originalbetreff: "Wer kann Firmware fuer _neue_ Bricklets compilieren?" Hallo zusammen, wie an einigen Stellen zu lesen ist, wird es (bald) neue Bricklets geben. Es scheint aber so, dass die Firmware wohl schon im Betastadium verfuegbar ist. Leider habe ich es noch nicht geschafft mir eine Compilerumgebung aufzusetzen und wuerde mich freuen, wenn jemand fuer mich diese Firmware mal uebersetzten koennte: Dual Button Bricklet Danke. Der Loetkolben Zitieren
borg Geschrieben September 5, 2013 at 17:08 Geschrieben September 5, 2013 at 17:08 Siehe Anhang.dual-button-bricklet.bin Zitieren
Loetkolben Geschrieben September 5, 2013 at 19:50 Autor Geschrieben September 5, 2013 at 19:50 Hallo borg, vielen Dank! Es funktioniert wie erwartet. Toll. Wie schonmal geschrieben moechte ich eine LED per Tastendruck "lokal" anmachen, diesen Zustand dann ohne Callback abfragen und die LED dann loeschen. Beim io4 Bricklet kann ich den (Tasten-)Zaehler >1 abfragen und auch loeschen, aber es wird lokal keine LED angemacht. Bei Dual-Button Bricklet macht der Taster eine LED an. Den Zustand kann ich auch abfragen aber die LED nicht einzeln loeschen. Ich muesste den Status der 2. LED abfragen und dann mitsetzen. Warum gibt es keine Bitmaske? Weiterhin waere ein Modus schoen der die LED setzt egal wie oft gedrueckt wird. Wie der "Flankenzaehler" Auf jeden Fall finde ich das ein sehr sinnvolles Bricklet! Sind dort auch Loetpads fuer externe LED/Taster drauf? Mein Fazit: Koennte man nicht "eine" Firmware machen die die Moeglichkeiten beider Bricklets vereint (Weniger Wartungsaufwand und mehr Moeglichkeiten)? Als "einzigen" Unterschied koennte man den Namen aendern und den Init anders setzen (io4: 4*input) (Dual-Button:Toggle, 2*in + 2*out) Der Loetkolben Zitieren
Loetkolben Geschrieben October 17, 2013 at 14:51 Autor Geschrieben October 17, 2013 at 14:51 Hallo zusammen, da darf ich nochmals einhaken, da nun die Schematics verfuegbar sind.. Warum werden die LED gegen VCC geschaltet und nicht gegen GND? Was hat das fuer einen Vorteil, bzw. was ist der Sinn dahinter? Schont das die Portausgaenge oder kann auf diesem Weg ein hoeherer Strom fliessen? Nach einem HW Reset muessten die LED an sein. Die Buttons werden (typischerweise) gegen GND getastet. Danke. Der Loetkolben Zitieren
batti Geschrieben October 17, 2013 at 15:08 Geschrieben October 17, 2013 at 15:08 Hallo Lötkolben, Warum werden die LED gegen VCC geschaltet und nicht gegen GND? Was hat das fuer einen Vorteil, bzw. was ist der Sinn dahinter? Schont das die Portausgaenge oder kann auf diesem Weg ein hoeherer Strom fliessen? Damit die LED leuchtet muss der Port gegen GND geschalten werden. Somit ist sichergestellt, dass die LED nicht leuchtet auch wenn der Prozessorpin auf Input Pullup steht (Default, auch wenn der Pullup meist sehr hochohmig ist). Man schaltet LEDs meist aber auch gegen GND weil viele Treiber mehr Strom nach GND abführen können als gegen VCC. Grüße, Bastian Zitieren
Loetkolben Geschrieben October 17, 2013 at 15:28 Autor Geschrieben October 17, 2013 at 15:28 Hallo batti, vielen Dank fuer die schnelle Antwort. Das macht ja wirklich Sinn und passt ja zu meinen Vermutungen. Dann haette ich aber noch eine Bitte: Wenn ich das richtig verstehe, dann ist der IO Pin nach dem HW Reset (Power off/on) auf Input gestellt. Waehrend des Initialisierens der Bricklet FW wird er dann auf Output gestellt. Koenntet ihr bitte die FW so anpassen, dass nach dem HW Reset und nach der Bricklet Initialisierungsphase die LEDs am Anfang AUS sind. Aus meiner Sicht verwirrt es, wenn nach dem Einschalten der Hardware erstmal alles LED an sind. (Oder habe ich hier eine alte FW?) Nachtrag: Von mir aus koennen die LED zum Funktionstest gerne 500ms angehen oder blinken, aber sie sollten nach der Initialisierungphase defaultmaessig AUS sein. Danke. Der Loetkolben Zitieren
photron Geschrieben October 17, 2013 at 15:34 Geschrieben October 17, 2013 at 15:34 Bei Dual-Button Bricklet macht der Taster eine LED an. Den Zustand kann ich auch abfragen aber die LED nicht einzeln loeschen. Ich muesste den Status der 2. LED abfragen und dann mitsetzen. Warum gibt es keine Bitmaske? Richtiger Hinweis, ist vermerkt Sind dort auch Loetpads fuer externe LED/Taster drauf? Die Taster sind bedrahtete Bauteile, du kannst also an deren Pins was anlöten. Mein Fazit: Koennte man nicht "eine" Firmware machen die die Moeglichkeiten beider Bricklets vereint (Weniger Wartungsaufwand und mehr Moeglichkeiten)? Als "einzigen" Unterschied koennte man den Namen aendern und den Init anders setzen (io4: 4*input) (Dual-Button:Toggle, 2*in + 2*out) Das wird nicht passieren, dafür sind die beiden zu verschieden. Im Endeffekt würde ein Zusammenlegen höchstwahrscheinlich mehr Arbeit machen als es sparen könnte. Wenn ich das richtig verstehe, dann ist der IO Pin nach dem HW Reset (Power off/on) auf Input gestellt. Waehrend des Initialisierens der Bricklet FW wird er dann auf Output gestellt. Koenntet ihr bitte die FW so anpassen, dass nach dem HW Reset und nach der Bricklet Initialisierungsphase die LEDs am Anfang AUS sind. Aus meiner Sicht verwirrt es, wenn nach dem Einschalten der Hardware erstmal alles LED an sind. (Oder habe ich hier eine alte FW?) Die LEDs sind nach dem Reset aus. Nach dem Reset sind alle Pins im Input Pull-Up Modus. Input heißt, dass sie nicht aktiv getrieben werden (das wäre Output). Pull-Up heißt, dass sie über einen internen (Pull-Up) Widerstand gegen VCC geschaltet sind. Dadurch sind die LEDs initial aus, weil sie an beiden Enden an VCC hängen. Zitieren
Loetkolben Geschrieben October 17, 2013 at 15:59 Autor Geschrieben October 17, 2013 at 15:59 Die LEDs sind nach dem Reset aus. Nach dem Reset sind alle Pins im Input Pull-Up Modus. Input heißt, dass sie nicht aktiv getrieben werden (das wäre Output). Pull-Up heißt, dass sie über einen internen (Pull-Up) Widerstand gegen VCC geschaltet sind. Dadurch sind die LEDs initial aus, weil sie an beiden Enden an VCC hängen. Hallo photron, ja das stimmt ja. Das ist der Zustand nach dem HW Reset, aber was kommt dann? Dann wird doch die Bricklet FW geladen/ausgefuehrt und die setzt die LED Ports auf Output und den Port selbst auf "Low". Und damit leuchten die LED. (Zumindest bei meiner FW. S.o.). Hier muesste die Bricklet FW den Port auf Output und "High" setzen, damit die LED, auch nach starten der Bricklet FW, aus bleiben. Oder? Der Loetkolben Zitieren
photron Geschrieben October 17, 2013 at 16:30 Geschrieben October 17, 2013 at 16:30 Meine Annahme war, dass die LEDs nach dem Start aus sind. Ich hätte in den Code schauen sollen. In der Tat werden die LEDs beim Start eingeschaltet. Ich gebe dir Recht, initial aus ist nahe liegender, so ist es jetzt auch abgeändert. Zitieren
Loetkolben Geschrieben October 17, 2013 at 16:41 Autor Geschrieben October 17, 2013 at 16:41 Hallo photron, so ist das eben mit invertierter Logik. Port "AN", damit die Led "AUS" bleibt. Koenntest Du bitte nochmal eine compilierte FW hier anhaengen? Dann baue ich meine Hardware auch um. Danke. Der Loetkolben Zitieren
photron Geschrieben October 17, 2013 at 16:53 Geschrieben October 17, 2013 at 16:53 Hier ist sie.dual-button-bricklet.bin Zitieren
Loetkolben Geschrieben October 17, 2013 at 17:55 Autor Geschrieben October 17, 2013 at 17:55 Hallo photron. VIELEN DANK! Mit dem "aktuellen" Brickviewer sieht das schon sehr rund aus. Ich stelle mal eine Interessensfrage, aber da bewege ich mich auf duennem Eis, da ich die Callbacks nicht so ganz verstehe: Wenn man auf dem Bricklet den Button drueckt wird ueber einen Callack (dem Brickviewer) mitgeteilt das der "Button pressed" ist und es wird der LED Status (On/Off) im Callback mitgeschickt. Soweit ok. Wenn man nun aber die LED per Brickviewerbutton oder eigener Software ein-, bzw ausschaltet, wird kein Callback ausgeloest. D.h., dass der letzte per Callback empfangene Status nicht mehr dem aktuellen Anzeigezustand der LEDs wiedergibt. Ist das so gewollt? Sollte nicht auch eine Aenderung des Schaltzustandes der LEDs auch einen Callback ausloesen damit der Status wieder stimmt? Diese Frage hat im Moment fuer mich keine Relevanz und darf gerne nach hinten gestellt werden. Der Loetkolben Zitieren
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.