- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Software Uart, Interrupt möglich?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    31
    Beiträge
    391

    Software Uart, Interrupt möglich?

    Anzeige

    Praxistest und DIY Projekte
    Guten Abend Community Gemeinde,
    mich würde interessieren, ob es auch möglich ist, den Software UART so zu konfigurieren, dass sobald ein Zeichen empfangen wird, ein Interrupt ausgelöst wird. Beim normalen UART funktioniert das, aber geht das auch beim Software Uart?

    Gruß Hunni

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo hunni!

    Ich kenne noch AVR's nicht gut, aber vielleicht wenn man als RX Pin einen definierten als "interrupt on change" Pin nimmt ?

    MfG

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    In der Regel wird man die Software UART zum Empfangen schon über einen Interruptfähigen Pin machen. Iich weiss nicht wie Bascom das genau intern realisiert und ob man sich irgendwie noch an den Interrupt ranhängen kann, weil die Software UART hier ja eine interne Funktion ist und nicht als Source Code vorliegt. In C wäre das keine Problem, weil man da in der Regel den Source-code zur Software UART hat.

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Ich denke, dass wenn man zwei Pins als RX miteinender verbindet, könnte man unabhängig von software UART ein interrupt auslösen, oder ?

    MfG

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    49
    Beiträge
    2.253
    Hab ich schon gemacht auf Int0-Eingang eines Mega32, ging
    problemlos.
    Den Int auf falling konfigurieren und in der Interruptroutine einfach
    nen Inkey.
    Sollte auch bei beliebigem Interrupteingang gehen.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Demnach kommt bei jedem Byte je Flanke ein Durchlauf der Interruptroutine.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der Interrupt direkt vom Signal Pin kommt bei jeder passenden Flanke. Das ist relativ schwer auszuwerten. Man bekommt halt einen Interrupt beim Startbit und später nur je nach Bitwert. Die späteren Bits werden nach Zeit, also über einen Timerinterrupt eingelesen. Wenn man sich da reich hängt bekommt man wenigstens einen Interrupt pro Bit. Ohne Wissen um den internen Code von Bascom hilft einem das aber auch nur relativ wenig - das müsste schon explizit vorgesehen sein damit man sich da kontrolliert an den Interrupt ran hängen kann.

    Im zweifelsfall wäre es da fast einfache die Software UART selber zu implementieren - dann geht es, wird nur in Bascom eher lagsam.

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    So weit ich weiss (BASCOM kenne ich leider noch unausreichend), lässt sich jeder interrupt einzeln sperren und wiedererlauben, das würde ich nutzen, falls möglich.

    MfG

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    49
    Beiträge
    2.253
    So ist es, man kann die einzelnen Interrupts disablen,
    sprich bei fallender Flanke disable int0, dann inkey per softuart und gut ist.
    muss man aber nicht machen, da der inkey innerhalb der Introutine
    den nochmaligen Aufruf dieser unterbindet.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    31
    Beiträge
    391
    Wenn ich jetzt den RXD pin auf Int0 lege und dann auf falling konfiguriere, würde das nicht zu lange brauchen um den Inputbefehl auszufüren, also würde nicht das erste zeichen vielleicht falsch interpretiert? Oder täusche ich mich da?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiTime Speicher und Akkus