Serielle Ausgaben mit komische Zeichen in der Konsole

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Serielle Ausgaben mit komische Zeichen in der Konsole

      Hallo zusammen,

      ich sende eine Variable an den Seriellen Monitor, diese wird von 0-10 hochgezählt.
      Die Variable wird auch im Monitor angezeigt, aber es werden komische Zeichen eingeblendet.
      Eigentlich würde ich erwarten das die Variable untereinander angezeigt wird, aber die Variable wird nebeneinander angezeigt.

      Hat einer eine Idee wie man diese Zeichen weg bekommt:

      Anzeige aus dem Monitor im Anhang.

      Code, Varieble ist "Sekundenzaehler"

      Sectic:
      Incr Sekundenzaehler
      Print Sekundenzaehler
      If Sekundenzaehler=10 then
      Neue_messung=1
      Sekundenzaehler=0
      Programm=10
      END IF
      Return
      Dateien
    • djmsc schrieb:


      BASCOM-Quellcode

      1. Print Str(Sekundenzaehler)
      Print Str hat das gleiche Ergebnis gezeigt.
      Also keine Änderung.


      Hier ist der komplette Code:

      $regfile = "m328pdef.dat"
      $crystal = 1000000
      $baud = 9600
      $hwstack = 32
      $swstack = 10
      $framesize = 40
      'Async Timer 2
      Config Clock = Soft, Gosub = Sectic


      Config Pind.2=Input
      Config Pind.3=Input

      Config PortD.4=Output
      PortD.4=0
      Config PORTD.5=Output
      PortD.5=0
      Config PortD.6=Output
      PortD.6=0
      Config PortD.7=Output
      PortD.7=0
      Config POrtB.5=Output
      PortB.5=0
      Config PORTB.6=Output
      PortB.6=0
      Config PORTB.7=Output
      PortB.7=0
      Config PORTB.0=Output
      PortB.0=0
      Config PORTC.3=Output
      PortC.3=0
      Config PORTC.2=Output
      PortC.2=0
      Config PORTC.1=Output
      PortC.1=0
      Config PORTC.0=Output
      PortC.0=0

      Config Portb.1 = Output
      Config PortB.2=OUTPUT
      Config Portb.3 = Output
      Config Portb.4 = Output '

      Dim Lowbyte As Byte
      Dim Highbyte As Byte
      Dim Lowb As Byte
      Dim Highb As Byte



      DIM Sekundenzaehler As byte
      DIM Neue_messung As Bit
      DIM Programm as Byte
      'On Int0 Int0_isr
      'Enable Int0
      On Int1 Int1_isr
      Enable Int1

      Enable Interrupts
      Stop Adc
      Stop Ac
      Stop Watchdog

      Do
      If Programm = 10 then
      Print "Programm: "; Programm
      Portb.4=1
      Waitms 500
      Portb.4=0
      Programm=0
      END IF
      Power Powersave

      Loop
      END

      Sectic:
      Incr Sekundenzaehler
      Print Str(Sekundenzaehler)
      If Sekundenzaehler=10 then
      Neue_messung=1
      Sekundenzaehler=0
      Programm=10
      END IF
      Return

      Int1_isr:
      Print"Int1"
      return
    • Scheint doch daran zu liegen wo dieser Print Befehl steht.

      Jetzt habe ich folgendes in die Do...Loop Schliefe geschrieben:

      For Sekundenzaehler = 0 To 10
      Print Sekundenzaehler
      Next
      Power Powersave

      Jetzt zeig wird die Variable richtig angezeigt, aber nicht jede Sekunde, sondern alle 10sek. und dann von 0-10 in einem Rutsch...
      Dateien
    • djmsc schrieb:

      EIn Flag ist eine Variable die entweder ein Bit oder Byte ist und über die kannst du abfragen ob deine ISR angesprungen wurde.

      BASCOM-Quellcode

      1. Dim Sec_flag As Byte
      2. Sec_Flag = 0
      3. Do
      4. If Sec_flag = 1 then
      5. Print ...
      6. Sec_flag = 0
      7. End If
      8. Loop
      9. End
      10. Sectic:
      11. Sec_flag = 1
      12. ...
      13. Return
      Alles anzeigen
      Habe es mit der Flag Variable ausprobiert, auch leider das selbe Ergebnis.
      Dann habe ich daran gedacht das du sagtest das die Print Ausgabe zu lange dauert.
      Habe daraufhin ein Waitms 2 hinter der If...END If gemacht, schon ist die Anzeige im Seriellen Monitor so wie ich es mir vorgestellt habe.

      Mit einem Waitms 1 hat es nicht richtig funktioniert.

      Aber jetzt funzt das, ist halt irgendwie doof wegen der waitms 2...

      Aber Vielen Dank für den Hinweis