LED-Basic Erweiterung?

Startseite Foren LEDs, Controller, Player LED-Basic Erweiterung?

Schlagwörter: 

Ansicht von 8 Beiträgen - 1 bis 8 (von insgesamt 8)
  • Autor
    Beiträge
  • #882
    EREL
    Teilnehmer

    Es wäre sehr praktisch, wenn das LED-Basic um eine Art serielle Schnittstelle (an einem der Eingangs- und ggf. Ausgangsport) erweitert würde.
    Damit könnten Anzeige- und Steuerfunktionen extern ermöglicht werden, wie z.B. Zähler, Kurs-Anzeigen, Wetterdaten usw.

    #883
    Folker Stange
    Verwalter

    Hi EREL, klar, das ist auch eine Funktion, die einen gewissen Standard hat. Zunächst sind alle Basic-Controller mit einem Rückkanal ausgestattet (nur der kleine Smart-Button hat es nicht). Den kann man in Kombination mit dem Printbefehl zur Kommunikation mit dem Editor nutzen. Für eine Datenübertragung nach außen lassen sich ggf. die I/Os verwenden. Diese sind Bitweise zugeordnet, d.h. erstes I/O = 1; 2. =2; 3; =4. Wären drei Bit Breite. Zugegeben, nicht gerade viel, aber für kleine Anwendungen durchaus machbar.

    Eine serielle Schnittstelle unter Basic „frisst“ ordentlich Recourcen, die auch bei den Controllern bis M3 alle fürs Basic benutzt werden. Bei den neuen M4 Controllerboards wäre das ggf. schon einfacher. Aber das derzeit verwendete Basic ist dafür eher nicht geeignet.

    Bei einem Erfolg unserer Produkte – da stehen wir noch ganz am Anfang – wird es mit Sicherheit eine deutlich leistungsstärkere Basic-Version für M7-Cortexe geben, die nicht auf dem Integer-Controller-Basic aufsetzt. Das ist unsererseits bereits fest geplant, kommt halt nur aufs Marktverhalten an, das wird sich zukünftig zeigen ob es einen Bedarf dafür gibt. Dort sind eine oder zwei serielle Schnittstellen sicher kein Problem mehr.

    #884
    EREL
    Teilnehmer

    Danke für die sehr schnelle Antwort!

    Ich weiß sehr wohl darum, daß ein kleiner Wunsch oft mit viel (Programmier-)Arbeit verbunden ist, vielleicht gäbe es dennoch eine Chance:
    1. die Baudrate könnte vergleichsweise niedrig sein um ins (bestimmt vorhandene) Timing zu passen, die Eingangsporta lassen sich ja auch innerhalb des Programmes abfragen
    2. es geht vielleicht nicht immer um direkte, zeitkritische Steuerung der LEDs, es reicht oft, Programmbereiche aufzurufen oder (einfache) Parameter zu übergeben, wie vielleicht anzuzeigende Werte
    3. eine Reihe Anwendungen benötigen keinen kontinuierlichen Datenströmen zu den LEDs sondern nur Änderungen in vergleichsweise größeren Zeitabständen (z.B. Uhren), in der „Zwischenzeit“ könnte auch ein serieller Port „gepollt“ werden.

    Konkret möchte ich gerne eine Cronixie-„Uhr“ extern zur Datenanzeige (z.B. Temperatur) nutzen und extern Auch Anzeigeparameter (Helligkeit, Farbe, Stellenzahl usw.) steuern.

    Nochmals Danke!

    PS: Zusatzfrage
    Bei der Cronixie-Text-Uhr scheinen ja nicht an allen Stellen alle 10 Zeichenplätze belegt zu sein – sind da „Leerscheiben“ eingesetzt?

    #885
    Folker Stange
    Verwalter

    >Cronixie-„Uhr“ extern zur Datenanzeige (z.B. Temperatur)
    Dafür lässt sich beispielsweise der Pentagon einsetzen, der hat eine Temperatursensorabfrage on board. Wenn man den Drehencoder nutzen will, dann auf den neuen M4-Pentagon warten, der ist gerade in Produktion. Das Teil unterstützt alle Sensorik, die wir bis jetzt in den Basic-Player eingebunden haben.
    >Zusatzfrage
    ein Zeichen ist nicht belegt der kleine Kreis. Ggf. kann man bei Verzicht auf die Englische Version etwas „abspecken“. Koordinate 9:1
    Scheibenbelegung

    • Diese Antwort wurde geändert vor 6 Jahre, 8 Monaten von Folker Stange.
    #887
    EREL
    Teilnehmer

    Nochmals vielen Dank,
    die einzige Möglichkeit, an den Basic-Cronios-1 heranzukommen, ist, den Drehimpulsgeber zu „mißbrauchen“ (der dazu wahrscheinlich entfernt werden muß).
    Ein externer μC könnte diesen simulieren und das bedarf dreier Outputleitungen am steuernden Gerät.
    Dezimale Zahleneingaben benötigen max. 10 Impulse/Stelle, ggf. mehr für Steuerzeichen. Da es hier um relativ wenige Daten (Parameter, darzustellende Ziffern- oder Zeichenfolgen, Unterprogrammaufrufe) geht, kann eine gewisse Verarbeitungszeit in Kauf genommen werden.
    Dazu zwei Fragen:
    1. was für ein Typ Drehimpulsgeber ist verbaut?
    2. welche maximale Impulsrate /s wird gelesen?

    #888
    Folker Stange
    Verwalter

    Hmm, das ist sicher keine gute Sache. Gib uns mal noch etwas Zeit, ggf. gibt es eine andere Möglichkeit.

    #902
    EREL
    Teilnehmer

    So, hat etwas Zeit und eine ganze Menge „Gehirnschmalz“ gekostet:

    Ich habe einen Weg gefunden, wie man das LED-Basic eines Cronioa-Modula überreden kann, „Eingaben“ anzunehmen. Der Weg über den Drehimpulsgeber scheint (derzeit) der einzig mögliche, allerdings (wegen der verschiedenen Schalterstellungen der Drehkontakte) nur über den des Tastschalters.

    Und nun bin ich wieder beim Thema: leider erschwert dies das LED-Basic sehr, da die Kontakteingänge auch beim GETKEY-Befehl erst entprellt zu werden scheinen, d.h. ein Potentialwechsel wird auch in einer direkten Schleife

    ‚v = Vorher-Zustand
    i = 0 ‚Schleifenzähler
    20920:
    delay 2
    l = l + 1
    k = IO.keystate() ‚ Key abfragen
    if k = v then goto 20920 ‚ Zustand unverändert -> weiter warten

    erst verzögert erkannt, leider nicht mit reproduzierbarer Verzögerungszeit!

    Eine Wertübergabe mittels Zeitmessung von Port-Pegelwechseln ist zwar nicht unmöglich (siehe dazu später einen Thread ‚LED-Basic „Input“ simulieren‘) aber unsicher und damit schwierig…

    Es wäre also zumindest wünschenswert, wenn die IO.keystate-Abfrage unverzögert einem Portpegelwechsel folgen würde!

    PS: ich weiß, daß z.B. anfangs erst eine eventuell gerade laufende LED.show-Routine abzuwarten ist. Der erste Aktivzustand (hier L-Petel) muß also mindestens so lange andauern (>40 ms), bis eine direkte Portabfrageschleife (s.o.) überhaupt erreicht werden kann…

    #903
    EREL
    Teilnehmer

    (Sorry wegen der abenteuerlichen Schreibweise meines letzten Beitrages, man sollte einfach nicht mit iOS-Geräten längere Texte schreiben, und schon gar nicht spät am Abend!
    Natürlich fangen BASIC-Kommentare nicht mit Kommata an (das hatte ich anders eingetippt, ist der Apostroph hier nicht zulässig?); statt „Getkey“ ist „IO.keystate“ gemeint und es geht beispielhaft nach wie vor um das CRONIOS-Board (wie die Rechtschreibverbesserung auf ‚Cronia‘ kommt bleibt schleierhaft).)

Ansicht von 8 Beiträgen - 1 bis 8 (von insgesamt 8)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.