bascom instr

Gast #5675620
Lesenswert?
• ▲
▼
Ich nutze software uart.
Die Variabellänge text wächst natürlich an, vorher habe ich den Inhalt 
der Variabele gelöscht.
Wenn ich bla(1) u. bla(2) nutze, funktioniert es.
Es schaltet eine Led an, oder deaktiviert eine Led.
Nehme ich aber für bla(1) z.b "weiter" u. für bla(2) z.b "stopp" 
funktioniert es nicht und ich weiss nicht wieso.


Folgenden Programmiercode habe ich:
$regfile = "m8def.dat"
$crystal = 1000000
Baud = 9600

$swstack = 32
$hwstack = 32
$framesize = 40


Config Portb.0 = Output
Led Alias Portb.0

Dim Text As String * 64
Dim Var As Byte
Dim Pos(2) As Byte
  Dim Bla(2) As String * 24
  Bla(1) = "a"
  Bla(2) = "b"

Text = ""

Open "comd.0:9600,8,n,1" For Input As #1
   Do
      Var = Inkey(#1)
         If Var <> 0 Then
            Text = Text + Chr(var)
            Gosub Pruefen
         End If
   Loop
Close #1
End

Pruefen:
   Pos(1) = Instr(text , Bla(1))
      If Pos(1) > 0 Then
         Led = 1
         Text = ""
      End If
   Pos(2) = Instr(text , Bla(2))
      If Pos(2) > 0 Then
         Led = 0
         Text = ""
      End If
Return
#5676324
Lesenswert?
• ▲
▼
frage schrieb:
> $regfile = "m8def.dat"
> $crystal = 1000000

Moin,

Lass mich raten: Interner RC-Oszi/8?
9600baud bei 1MHz ergibt 7,84% Fehler. Das kann nicht funktionieren.
Mit 4800 könnte es mit Glück funktionieren.

Grundsätzlich geht das mit dem internen RC vielleicht mal zufällig, der 
ist zu ungenau für Uart, vor allem bei dem ollen Mega8.
Nein, mit 8MHz oder geringerer Baudrate wird die Ungenauigkeit nicht 
besser!
Mit 1MHz und 9600 funktioniert es aber ziemlich sicher gar nicht.

Gruß,
Norbert
Gast #5676400
Lesenswert?
• ▲
▼
@Rufus Τ. F. ..ja hat geklappt, also ich sende Daten zum Atmega u. 
schicke sie dann direkt wieder über seriell zurück.
UND ja..es gab fehlerhafte Informationen...
DAHER nochmal einen dicken Dank an Norbert S.

Bei software uart, klappt es bei mir mit einer Taktfrequenz von 1 MHZ 
nur mit 1200 baud...

Nochmal vielen Dank für die nützlichen Informationen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.