Jump to content

IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?


Recommended Posts

Edit:

Originalbetreff: "Wer kann Firmware fuer _neue_ Bricklets compilieren?"

 

Hallo zusammen,

 

wie an einigen Stellen zu lesen ist, wird es (bald) neue Bricklets geben.  :D

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

 

Link zu diesem Kommentar
Share on other sites

Hallo borg,

 

vielen Dank!  :D

 

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?  ;D

 

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

 

 

 

Link zu diesem Kommentar
Share on other sites

  • 1 month later...

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

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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?  ;D

 

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.

Link zu diesem Kommentar
Share on other sites

 

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

Link zu diesem Kommentar
Share on other sites

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

 

 

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...