- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 7 von 7

Thema: Vorsicht bei SW-UART

  1. #1
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842

    Vorsicht bei SW-UART

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Anlässlich eines längeren Threads hat sich folgendes herausgestellt, was bei der Verwendung der Bascom Soft-UART zu beachten ist:

    Das Statement
    OPEN "Comxxxxxxxx"
    bewirkt zweierlei:
    1 Die notwendigen Routinen werden vom Bascom eingebunden
    2 Der angegeben Pin wird als Input/Output definiert und gesetzt.

    Beides macht er je Source NUR EINMAL, egal, wie oft und wo es in der Source drinsteht.
    d.h man muß darauf achten, das das OPEN statement nicht nur drinsteht, sondern auch EXEKUTIERT wird, bevor die Routinen verwendet werden.
    besonders Punkt 2 ist bei "as output" heikel, da ja sonst das Port Pin vermutlich auf Input geschaltet bleibt. Und das heißt, der "Print #n " bewirkt absolut nix.

    Für SW-Uart der "close #n" absolut überflüssig, er hat keine Funktion.

    Heißt auch, man kann sich den Pin NICHT zwischendurch für was anderes ausborgen und dann halt wieder "OPEN" machen. (Wenn das wer vorhat)

    Ich weiß nicht, ob das verständlich ist, Rückfragen gerne
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    sondern auch EXEKUTIERT wird,
    Au weia, ein hartes Wort...

    Gruß Jan

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    JanB, alter Kollege, bist du es ? wieder im Lande ?

    (massakriert wollt' ich nicht nehmen)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2004
    Beiträge
    12
    Hallo PickNick,

    in der Tat, die Anweisung Close ist in Bascom-avr im gegensatz zu VB-Basic überflüssig. Diese Tatsache ist in der Hilfe und in der Literatur bereits dokumentiert. Das notwendige schließen des geöffneten Kanals wird nur aus Gründen der Kompatibilität mit Qbasic in BASCOM-AVR ausgeführt.
    Achtung: auch wenn diese Funktion überflüssig ist muss diese immer im Programm eingegeben werden. Ein Tribut an Basic mit dem man noch wegen übersichtlichkeit des Quellcodes leben muss.

    Gruß
    Marius Meissner

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Klar, Marius, state-of-the-art und wegen der (möglichen) Portabilität, gibt's kein Open ohne close. Es sollt' sich nur keiner vorstellen, wie am PC, daß da irgendwelche Ressourcen freigegeben werden (können).

    Vital wichtig ist, daß der "Open" am besten grundsätzlich ein für alle Mal vorn bei den diversen "Config" zu Hause ist, damit er sicher durchlaufen wird. Man muß wohl abraten, den Open in irgendwelchen Sub's (just in case) zu verstecken, auch wenn es Programm-strukturell eigentlich richtig wäre. Aber über sowas kann man diskutieren.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2004
    Beiträge
    12
    Im Prinzip stimme ich Dir ganz zu, auf der anderen Seite ist nur mal so, dass wenn man beim jedem Problem eine Syntax Ausnahe macht, schnell ein Dialekt zustande kommt der sich immer mehr vom Basic entfernt.
    Aus diesem Grund ist sicherlich geschickter beim vertrauten zu bleiben, auch wenn es auf den zweiten Blick unlogisch erscheint.
    Ich bin mir sicher, dass dieses unwesentliches funktions Problem den allenwenigsten aufgefallen ist. Als fortgeschrittener Bascom-avr Nutzer ist es natürlich legitim dies zu hinterfragen. In dem Programm sind noch einige weitere inkonsistenzen die genauso hinterfragt werden können.

    Gruß
    Marius Meissner

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Im Grund sind wir uns ja vollkommen einig.

    Nur zur Illustration, worums geht, und warum es eben schon aufgefallen ist.
    es gab da einen Thread,
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=10552
    der ursprünglich Rätsel aufgab. Keine compiler-error, eigentlich richtig, nicht optimal, aber richtig.
    Und trotzdem ging's nicht.
    Das konnt' ich nicht auf mir sitzen lassen, daß ich sowas nicht definitiv erklären kann. Aus meine Recherche stammen eben die obgenannten Weisheiten. Wenn man's mal weiß, ist alles klar.
    OT: Du bist doch der Marius mit dem Basic -Buch ?

    Also nochmals
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen