Für dieses Forum muß Javascript im Browser aktiviert werden!
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 Hansi, > > > > > > > > > > > <asm> > > > > > P1L_ EQU 0FF04h > > > > > P1H_ EQU 0FF06h > > > > > > > > > > ..... > > > > > move r3,#Speicheradresse ; Speicherplatz, der #P1L_ oder #P1H_ enthält > > > > > EXTS #8,#1 > > > > > mov r7,[r3] ; r7 enthält jetzt P1L_ > > > > > EXTS #0,#1 > > > > > mov r2,[r7] ; r2 soll jetzt die Ports enthalten tut es aber nicht > > > > > ...... > > > > > </asm> > > > > > > > > > > eine andere Variante funktioniert > > > > > <asm> > > > > > P1L_ EQU 0FF04h > > > > > P1H_ EQU 0FF06h > > > > > > > > > > ..... > > > > > EXTS #0,#1 > > > > > mov r2,P1L_ ; so funktioniert es > > > > > ...... > > > > > </asm> > > > > > > > > > > ist das ein generelles Problem, gib es eine andere Möglichkeit den Port in r2 zu laden? > > > > > > Bist Du sicher, daß Der Speicherplatz (R3) korrekt ist ? > > > > > > Denn bei mir funzt es Problemlos: > > > <asm> > > > $segmented > > > $model(medium) > > > $extend > > > $nomod166 > > > $stdnames(reg164ci.def) > > > $NOLOCALS > > > regdef R12,R4,R1 ,R2 > > > ;**************************************************************************** > > > > > > BusAddr EQU 0FD10H > > > BusAddrA EQU 0FD12H > > > AddrL EQU 0FD14H > > > AddrH EQU 0FD16H > > > DataW EQU 0FD18H > > > Ports EQU 0FD1AH ; I/O-Ports= Bit 6,7 > > > > > > ; Definition des OS-Routinen > > > OSsegment EQU 0 > > > POP_R4 EQU 0765AH > > > PUSH_R12 EQU 075D6H > > > > > > userseg SECTION CODE word at 32000h > > > assume dpp3:userseg > > > > > > > > > ;**************************************************************************** > > > ptest proc far > > > CALLS OSsegment,POP_R4 ;hole Daten vom Stack > > > > > > EXTS #0, #1 > > > MOV R12, [R4] > > > > > > CALLS OSsegment,PUSH_R12 ;lade Daten auf den Stack > > > POP R1 > > > POP R1 > > > RETS > > > ptest endp > > > userseg ENDS > > > END > > > </asm> > > > > > > Das C2-Testproggie dazu: > > > <code>//------------------------------------------------ > > > inline function test (int port) returns int > > > //------------------------------------------------ > > > { > > > inline vmcodes.VM_LOAD_IMMEDIATE_BYTE+0x300; > > > inline vmcodes.VM_LOAD_IMMEDIATE_INT; > > > inline 0x2000; > > > inline vmcodes.VM_SYSCALL; > > > } > > > > > > thread main > > > {byte i;int wert; > > > lcdext.init(); > > > loop > > > { > > > lcdext.line(1); > > > for i= 8 ... 15 lcdext.ziff(ports.get(i)and 1); > > > lcdext.line(2); > > > wert=test(0xFF06); > > > for i= 0 ... 7 lcdext.ziff((wert shr i)and 1); > > > } > > > }</code> > > > > > > > > > > Hat da noch niemand eine Antwort drauf? André H. , Du auch nicht? > > > > Andre, ich habe Dir übrigens am 15. eine mail geschickt ( .....@imail.de ) , kam sie nicht an? > > > > > > Sorry, aber da ich z.Zt. fast keine Zeit habe, dauert bei mir alles ein wenig länger. > > > Das gilt für E-Mail, Postings und alles andere auch. > > > > > > Bei EMails kann es daher schon einmal über eine Woche dauern, bis ich zum Antworten komme. > > > Im Forum ist es ähnlich, nur daß dies meist sogar länger dauert. > > > Eigentlich müsste ich jetzt produzieren, jedoch hat sich im Forum wieder zuviel angesammelt, > > > und mein Platinenhersteller lässt mich gerade im Stich, sodaß ich nur einen kleinen Teil > > > der Bestellungen heute fertigmachen kann. (Meine Platinenproduktion, die gestern fertig sein sollte, > > > bekomme ich wegen eines Herstellungsfehlers ich erst am Dienstag, da alle Platinen > > > scheinbar neu produziert werden müssen.) > > > > > > MfG André H. > > > > Guten Abend André, > > > > da bin ich mir sogar sehr sicher weil ich die gleiche Speicherstelle mit dem gleichen Inhalt > > jetzt in einer anderen Form Abfrage und beide Ports klappen einwandfrei. > > > > <asm> > > > > ..... > > P1L_ EQU 0FF04h > > P1H_ EQU 0FF06h > > > > ....... > > mov r3,#Speicheradresse ; Speicherplatz, der #P1L_ oder #P1H_ enthält > > EXTS #8,#1 > > mov r7,[r3] ; r7 enthält jetzt #P1L_ > > cmp r7, #P1L_ > > jmpr cc_EQ, Sub_P1L > > > > Sub_P1H: EXTS #0,#1 > > mov r2,#P1H_ > > ...... > > Sub_P1L: EXTS #0,#1 > > mov r2,#P1L_ > > ....... > > > > </asm> > > > > Gruß Hansi > > > > > Guten Morgen, > > Da kommt mir gerade so ein Verdacht! > > Vieleicht wurde ja tatsächlich der Port eingelesen, allerdings dürfte der Befehl mov r2,#P1L langsammer > abgearbeitet werden als der Befehle mov r2,[r7]. Dann kann es durchaus sein, dass das Timing in > meiner Routine nicht mehr paßt ( 75 bis 175 Durchläufe ) und deshalb keine gültigen Bits erkannt > wurden. > > Ich habe eine Testschleife geschrieben, wo 2 Befehle ( "mov r2,#PiL_ ", "and r2,#0080h", > "xor r2,#0080h" ) gegen "and r2,r6 ", "xor r2,r6" ausgetauscht wurden. ( vorher r6 mit #0080h geladen ). > Die Schleife wurde sage und schreibe 20% schneller durchlaufen. > > Gruß Hansi ...ich werde die Angelegenheit noch einmal austesten >