Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo André, > > das werde ich so mal ausprobieren, momentan komme ich allerdings nicht dazu weil ich noch an dem > Projekt "FS20 gehorcht aufs Wort - Sprachsteuerung mit PC und CC2" arbeite. > > Huch, jetzt habe ich ja schon wieder was verraten ;-) > > Gruß Hansi ...und es funktioniert :-D > > > > Hallo Hansi, > > > > > der Vergleichbefehl war/ist schon korrekt geschrieben, dass die 1 in Worten eins wie ein > > > l ( el ) aussieht liegt am Zeichensatz. > > Naja. Das muß ich jetzt einmal glauben. ;-) (Obwohl: <asm> 1 I </asm>) > > > > > Das Problem bleib allerdings bestehen, im Segment 8 läuft das Programm nicht, Im Segment 3 schon. > > > Wie ich das Programm in Segment 8 gekriegt habe? > > > Wie im Buch MSR mit C-Control II beschrieben, Hexcode in ein Integerarray geschrieben. > > > Low und Highbyte selbstverständlich getauscht und vor dem Programmcode jede Menge Nops. > > > Deshalb auch die Hohe Speicheradresse von dezimal 2000. > > > > Gut. Du hast also ins "Blaue" geschrieben. ;-) > > Das Buch ist leider nicht mehr Up to Date. > > Es gibt folgende Möglichkeit, wie das ganze funzen muß: > > Du legst ein Byte-Array an und legst Dort die Routine ab. > > Dann rufst Du die Funktion <code>mem.getMemAddrByte(byte data[])</code> auf. > > Als Rückgabewert erhälst Du die Startadresse des Arrays. Diese muß gerade sein. > > (Wenn nicht, vorher einfach noch eine Byte-Var definieren.) > > Die Startadresse wäre nun gleichzeitig Deine Einsprungadresse. > > Die Adresse zum speichern für Daten übergibst Du am besten über den Stack.(zweites Array) > > > > In C2 sieht das dann so aus: > > <code> inline function xy(byte data[], byte segment, byte code[]) > > {// data ist das Datenarray > > // segment muß 8 sein > > // code wäre das Bytearray mit den ASM-Code > > inline vmcodes.VM_SYSCALL; > > } > > ... > > byte asm[1024]; > > byte Daten[48000]; > > ... > > xy(Daten,8,asm); > > ..</code> > > > > In den ASM-Routinen kannst Du nun auf das Daten-Array zugreifen, indem Du Dir > > die Startadresse vo Stack holst: > > <asm> > > OSsegment EQU 0 > > POP_R4 EQU 0765AH > > PUSH_R12 EQU 075D6H > > ... > > getxy proc far > > CALLS OSsegment,POP_R4 ;hole Array-Adresse vom Stack > > MOV R2, R4 > > Loop1: > > MOV R4, P1H > > AND R4, #080h > > SHR R4, #7 > > ADD R4, #030h > > EXTS #8. #1 > > MOVB [R2], RL4 > > CMPI1 R2, #48000 > > JMPR cc_NE, Loop1 > > POP R1 > > POP R1 > > RETS > > getxy endp > > </asm> > > > > MfG André H. > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB