INFO - FAQ - CC2-Forum - CCPro-Forum |
Hallo Patrick, das finde ich richtig Klasse das Du einen fast fertig ausgearbeiteten Lösungsvorschlag gepostest hast viele Grüße Stefan > Hallo Reinhard, > mit Assembler könntest du die 16 Bytes vielleicht schnell genug am Stück einlesen. > Ich habe hier ein Beispiel für dich, auf der Emulation läuft es einwandfrei. Du brauchst wahrscheinlich > die aktuellste mBasic Version. Zum Ausprobieren lege bitte ein neues Projekt an und kopiere den > folgenden Code in den BASIC bzw. Assembler Editor. > Hoffe es hilft dir weiter! > > > ___________________________________________________________________________________ > > B A S I C > ___________________________________________________________________________________ > Dim d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16 As Byte > > Print "Bitte 16 Buchstaben eingeben!" > > Call Get16SerialBytes > > Print "Und jetzt die einzelnen Zeichen wieder ausgeben:" > > Print Chr$(d1);Chr$(d2);Chr$(d3);Chr$(d4);Chr$(d5);Chr$(d6);Chr$(d7);Chr$(d8); _ > Chr$(d9);Chr$(d10);Chr$(d11);Chr$(d12);Chr$(d13);Chr$(d14);Chr$(d15); _ > Chr$(d16); Chr$(13); Chr$(10) > > Do:Loop > > > > __________________________________________________________________________________ > > Assembler > __________________________________________________________________________________ > > ; Die Adresse der Variablen: mbBasic füllt den Speicher von hinten auf > ; die 16 Bytes liegen also am Ende des 24 Byte großen Variablenspeicher > variablen EQU $A1+(24-16) > > SCI EQU $0F ;serial com control 2 > SCI.RE EQU 2 ;receiver enable > SCI.RIE EQU 5 ;receiver interrupt enable > > SCIstat EQU $10 ;serial com status > SCIstat.RXf EQU 5 ;receive data register full > > SCIdata EQU $11 ;serial com date > > Get16SerialBytes > BSET SCI.re ; Empfang aktivieren > BCLR SCI.rie ; Interrupt des OS deaktivieren > > LDX #0 > Loop > BRCLR SCIstat.RXf, Loop ;solange nicht "receive data register full" > INCX > > LDA SCIdata ; Input-Datenregister abfragen > STA variablen-1, x ; In den Variablenspeicher verschieben > > CPX #16 ; 16 Bytes gelesen? > BLO Loop ; nein weniger, dann zu loop > > BSET SCI.rie ; Interrupt des OS aktivieren > > RTS > __________________________________________________________________________________ |
Antwort schreiben |