- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 15

Thema: Code läuft nicht feherfrei, bitte um Hilfe! Input Capture und UART nicht gleichzeitig

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Bevor ich mich da reinsteigere, bist du sicher, dass du alles wichtige in deinem gekürzten Code drin hast? Mir fehlt das:

    Code:
    Dim Fs20cycle1 As Word
    Dim Count1 As Byte
    Dim Rdy1 As Byte
    Dim Rxbit1 As Byte
    Dim Gesamtcode1 As Word
    um den Code fehlerfrei zu übersetzen und bei "Case irgendetwas" sollte ein : am Ende stehen, oder?

    Code:
    Select Case Fs20cycle1
       Case Is < 599:                       'below 600µs, reset bitcounter
       Count1 = 1
       Case 600 To 1000:                    '600-1000µs, 0-bit
       Rxbit1 = 0
       Rdy1 = 1
       Case 1001 To 1400:                   '1000-1400µs, 1-bit
       Rxbit1 = 1
       Rdy1 = 1
       Case Is > 1401:                      'over 1400µs, reset bitcounter
       Count1 = 1
    End Select
    Gruß

    mic

    P.S.: Anstelle vom Speakersound würde ich bauchgefühlsmäßig besser Leds setzen/löschen.
    Geändert von radbruch (02.06.2013 um 20:42 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Lauffähig ist der Code nicht. Die ganzen DIM's habe ich rausgeschmissen damit man nicht soviel zu lesen hat. Damit passt auch alles weil die einzelnen Programmteile ja toll laufen. Es läuft eben leider nur nie der UART und der Input Capture zur selben Zeit. Hatte gehofft dafür gibts ne einfache Erklärung (die ich nicht kenne). Habe es mit ":" versucht am Ende des Casebefehls, brachte leider nichts (es funktioniert mit und ohne ":"). Dieser Teil funktioniert auch perfekt nur eben nicht zusammen mit dem UART. Es gibt da irgend ein Timingproblem, die einzelnen Codeteile laufen toll (einzeln).
    ----------------------------------------------------------------------------------------
    Je tiefer die Sonne der Kunst sinkt, umso grössere Schatten werfen Zwerge!!

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Oki, es wird aber etwas dauern bis ich mich da eingelesen habe.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Nun also endlich der erste Versuch: Bei 9600 Baud werden 150 Zeichen in 1 Sek. / 9600 * 150 oder 0,0156 Sekunden übertragen, weniger Zeichen entsprechend noch schneller. Mit

    Code:
    If Ischarwaiting(#2) = 1 Then                               'Wenn über den UART2 was reinkommt springe zur UART Auswertung'
    Gosub UART2auswertung
    End If
    wird allerdings nur das erste Zeichen abgespeichert. Alle anderen werden "verschluckt", weil das Programm mit

    Code:
    Gosub Empfang868mhz                                         'Gehe zum 868Mhz Funkempfang'
    beschäftigt ist. Ich hoffe, das ist's.

    Gruß

    mic
    Geändert von radbruch (03.06.2013 um 17:25 Uhr) Grund: Rechtschreibung
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Danke für deine Hilfe! Ja das könnte sein. Sobald ich "Gosub Empfang868mhz" entferne, läuft der UART einwandfrei und alle Eingaben übers Terminal kommen sofort zurück wie es sein soll. Ich befürchte, dass ich einen eigenen "kleinen" Mikrocontroller für das Empfangsmodul brauchen werde. Dieses übernimmt dann die Input Capture Auswertung und sobald da ein Funkcode im bekannten Format angekommen ist geht ein Port von 0 auf 1. Mein Hauptmikrocontroller sieht wenn er nichts zu tun hat immer nach ob dieser Port auf 1 ist. Wenn ja geht ein anderer Port von 0 auf 1 (Code wird angefordert) und der Funkcode wird nun seriell rüber gesendet. Das wird wohl die stressfreiste Möglichkeit sein. Am Ausgang des Funkmoduls liegt halt rauschen an und drum wird der Input Capture dadurch ziemlich "befeuert" vermute ich. Falls noch jemand weiß wie ich das ohne einen zweiten Mikrocontroller lösen kann, wäre ich sehr dankbar. Bin mir ziemlich sicher, dass es eine Lösung gibt, nur leider kenne ich sie nicht. Das ist nur ne Timingsache und sollte doch irgendwie zu lösen sein.
    ----------------------------------------------------------------------------------------
    Je tiefer die Sonne der Kunst sinkt, umso grössere Schatten werfen Zwerge!!

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Vielleicht funktioniert es so:

    Code:
    Do
       If Ischarwaiting(#2) = 1 Then        'Wenn über den UART2 was reinkommt springe zur UART Auswertung'
          Input UART2eingang Noecho
          Gosub Auswertung
       End If
       Gosub Empfang868mhz                  'Gehe zum 868Mhz Funkempfang'
    Loop
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Bascom spuckt mir da eine Fehlermeldung (Invalid datatype) aus in der Zeile "Input UART2eingang Noecho".
    ----------------------------------------------------------------------------------------
    Je tiefer die Sonne der Kunst sinkt, umso grössere Schatten werfen Zwerge!!

Ähnliche Themen

  1. Timer0 und UART Lib Fleury Timer läuft nicht mehr los
    Von gesamtplan im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 21.03.2011, 18:23
  2. UART macht probleme!!! Einfaches testprog läuft nicht
    Von hunni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 21.08.2009, 19:03
  3. [läuft+Code] Servotest an ATtiny13 läuft nicht
    Von oberallgeier im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 18.10.2007, 16:49
  4. UART Interrupts Input geht nicht
    Von lanic im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 15.03.2006, 15:50
  5. Antworten: 3
    Letzter Beitrag: 15.08.2005, 16:41

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress