Archiv verlassen und diese Seite im Standarddesign anzeigen : Uart Ausgabe vertauscht Wertepaare
Hallo Profis,
Hier mal ein Testprogramm ,das bei der Ausgabe die Zahlenpaare
vertauscht.Es sollen die Paare so ausgegeben werden,wie sie
abgelegt sind.Komischerweise fängt die Ausgabe mit einen Zahlenpaar
aus der Mitte einer Data-ablage an.Wie kriegt man das hin,
das der Speicher wahrheitsgemäss abgearbeitet wird?
$regfile = "attiny2313.dat"
$crystal = 3686400
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Config Serialout = Buffered , Size = 10
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim S As Byte , Count As Byte
Declare Sub Datenpunkt
Declare Sub Displaycls
Do
Wait 2
Displaycls 'Display löschen
Datenpunkt 'Datenpunkt setzen
Restore Data1:
For Count = 1 To 4
Read S : Print Chr(s);
Next
Loop
Sub Displaycls
Local C As Byte
Restore Cls1:
For Count = 1 To 3
Read C : Print Chr(c);
Next
End Sub
Sub Datenpunkt
Local D As Byte
Restore Datp10:
For Count = 1 To 5
Read D : Print Chr(d);
Next
End Sub
'Datentabelle
Cls1:
Data &H02 , &H43 , &H41 '02 43 41
Datp10:
Data &H04 , &H53 , &H01 , &H00 , &H56 '04 53 01 00 56
Data1:
Data &H03 , &H50 , &H41 , &H12 '03 50 41 12
Du fängst jetzt den dritten Thread zum gleichen Code-Schnipsel in zwei Tagen an !!
Und schau Dir bitte mal das richtige Posten von Code an...
PS: Im Simulator erfolgt die Ausgabe der Datenwerte in der Reihenfolge wie die DATA-Werte angeordnet sind.
Hi,
Code kannst du so posten:
[ code]Hier kommt dein Code rein[ /code ]
(Die Leerzeichen in den Klammern weglassen)
Sieht dann so aus:
Hier kommt dein Code rein
Vorteil ist, daß die Formatierungen (Einrücken) erhalten bleiben.
Das macht's übersichtlicher.
Gruß
Christopher
Hallo Profis,
ich hatte Bedenken das jemand Antworten noch liest.
Mit dem Code stimme ich zu.Anbei ein geänderte Form.
Die Anzahl der Wertepaare stimmt.Es werden aber Wertepaare aus
beiden Data Blocks benutzt.Das ergibt keinen Sinn.
die Hilfe kann ich schon langsam auswendig.Ich habe bewußt
mal alles stehen lassen.Kriege soweit alles hin,bis auf die Ausgabe.
Übrigens ich lese immer mit einen Terminalprogramm aus.
Es wurden mehrere Varianten der Ausgabe probiert.
Und Danke für die formellen Hinweise.
$regfile = "attiny2313.dat"
$crystal = 3686400
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Config Serialout = Buffered , Size = 10
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim S As Byte , Count As Byte
Declare Sub Datenpunkt
Declare Sub Displaycls
Do
'Print Chr(&H02) ; Chr(&H43) ; Chr(&H41) ; 'Display löschen
Datenpunkt 'Datenpunkt setzen
Restore Dta2:
For Count = 1 To 4
Read S : Printbin S;
Next
Wait 2
Loop
'Sub Displaycls
'Local C As Byte
'Restore Cls1:
'For Count = 1 To 3
' Read C : Print Chr(c);
' Next
'End Sub
Sub Datenpunkt
Local A As Byte
Restore Dta1:
For Count = 1 To 5
Read A : Printbin A;
Next Count
Wait 1
End Sub
'Datentabelle
Dta1:
Data &H04 , &H53 , &H01 , &H00 , &H56 '04 53 01 00 56
Dta2:
Data &H03 , &H50 , &H41 , &H12 '03 50 41 12
selten so ein codegewurschtet gelesen.
Mich wundert da nichts.
Was genau soll Dein Prog
Case of
machen:?
Können:?
end ?
Gento
ich versuche einfach auf verschiedene Weise "Data" über die Schnittstelle
auszugeben.Also lesen und ausgeben.Orginalgetreu!
Wobei Dta2 hakt in der Simulation.Es werden später ca 50 Data's
abgelegt.Aber wie gesagt ich habe einen Zahlendreher.
Hallo Profis
habe die Nacht durchgearbeitet und siehe da es läuft.
Die Idee mit der Simulation war sehr gut.Es gibt nur noch ein Problem:
Zum Schleifenende muss der zuletzt ausgegebene Wert gelöscht werden.
Sicher keine grosse Sache mann muss es nur wissen.
Anbei mal den Code in "Hochdeutsch".
Vielleicht kann mal jemand die Werte in der Deklaretion kommentieren.
Wurde aus Beispielen übernommen.
'-----------------------------------------------------------------------------------------
'name : Display Nokia.bas
'Programm Zur Ansteuerung Eines Miniterminals
'zur Datenausgabe auf Nokia 3310 Display
'-----------------------------------------------------------------------------------------
$regfile = "attiny2313.dat"
$crystal = 3686400
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Config Serialout = Buffered , Size = 40
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim Count As Byte
Declare Sub Datenpunkt
Declare Sub Displaycls
Declare Sub Text
'-----------------------------------------------------------------------------------------
Do
'Hauptschleife
Displaycls 'Display löschen
Datenpunkt 'Datenpunkt setzen
Text 'Text
'Platz für Hauptprogamm
' Wait 2
Loop
'-----------------------------------------------------------------------------------------
Sub Displaycls 'Unterprogramm
Local C As Byte 'Display löschen
Restore Cls1:
For Count = 1 To 3
Read C : Printbin C;
Next
End Sub
Sub Datenpunkt 'Unterprogramm
Local A As Byte 'Datenpunkt setzen
Restore Dta1:
For Count = 1 To 5
Read A : Printbin A;
Next
End Sub
Sub Text 'Unterprogramm
Local B As Byte 'Text
Restore Dta2:
For Count = 1 To 4
Read B : Printbin B;
Next Count
End Sub
'-------------------------------------------------------------------------------------------
'Datentabelle
Cls1:
Data &H02 , &H43 , &H41 '02 43 41
Dta1:
Data &H04 , &H53 , &H01 , &H00 , &H56 '04 53 01 00 56
Dta2:
Data &H03 , &H50 , &H41 , &H12 '03 50 41 12
'und so weiter
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.