www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethersex (Control6-Script)


Autor: Sebastian G. (gilly) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

vieleicht kennt sich ja jemand mit control6-scripts in ethersex aus und 
kann mir ein wenig weiter helfen.

Ich möchte gern folgendes realisieren:

An einem ADC-Port ein Poti hängen und abhängig von dem Wert per stella 
(PWM Modul) eine LED in der Helligkeit steuern.

Das klappt auch, nur kann ich stella wohl nicht aus control6 herraus 
direkt steuern, sondern wie im code unten per esend. Wenn ich nun das 
WAIT weglasse funktioniert nix mehr (ich nehme an, er schickt unendlich 
viele esends, wäre logisch) mit 1 Sekunde, ist das aber zu langsam.

Ich hab einen Schiebepoti und in 1 Sekunde kann ich den von einer Seite 
auf die andere schieben und die Reaktion kommt dann halt erst 1 Sekunde 
später. Da ich später Farben mischen möchte (RGB LEDs - 3 Schieberegler) 
ist 1 Sekunde einfach zu lang.

Ich verwende Pollin NetIO, da ich die Einstellungen sowohl übers Netz 
als auch "am Gerät" verändern können möchte.

Ich hab mir schon nen paar gedanken gemacht wie ich mein Problem lösen 
könnte, aber die sind alle irgendwie doof:

 - mehrere dieser Threads mit 1 sek Starten und hoffen das sie zeitlich 
versetzt laufen.
 - einen ADC Wert merken und nur esend benutzen wenn dieser sich 
verändert hat (dann tritt wahrscheinlich das problem "nur" nach auf wenn 
ich den schiebepoti bewege ).
 - eine globale Variable einfuegen, in der ich die Anzahl der gesendeten 
esends speicher, wenn der grösser als x ist werden keine mehr gesendet 
und jede sekunde diese Variable auf 0 setzen (per 2. thread).

[code]
CONTROL_START

   THREAD(testing)
      ECMD_GLOBAL(wert, 0, uint16_t);
      wert = ADC_GET(7);
      WAIT(1)
      ON wert < 512 DO ESEND(192.168.7.3, "channel 0 0\n"); END
      ON wert > 511 DO ESEND(192.168.7.3, "channel 0 255\n"); END
   THREAD_END(testing)

   ON STARTUP
      DO THREAD_START(testing);
   END

CONTROL_END
[code]

vieleicht fällt je jemand was besseres ein.

Danke erstmal

Autor: Martin Maier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schreib am Besten an die Mailingliste von Ethersex.

http://list.zerties.org/cgi-bin/mailman/listinfo/e...

Da wird dir bestimmt geholfen...

Gruß
   Martin

Autor: Sebastian G. (gilly) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jop wäre mein nächster schritt ;) aber danke für den tip.

Autor: Sebastian G. (gilly) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also die ethersex mailingliste hat geholfen, eine lösung wäre:
#include "services/stella/stella.h"

CONTROL_START
 
    THREAD(testing)
       ECMD_GLOBAL(wert, 0, uint16_t);
       wert = ADC_GET(7);
       ON wert < 512 DO stella_setValue(STELLA_SET_IMMEDIATELY, 0, 0); END
       ON wert > 511 DO stella_setValue(STELLA_SET_IMMEDIATELY, 0, 255); END
    THREAD_END(testing)
 
    ON STARTUP
       DO THREAD_START(testing);
    END
 
CONTROL_END

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.