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

Re: Portzugriff aus Segment 3 Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 19.11.2004 14:22)
Als Antwort auf Re: Portzugriff aus Segment 3 von Hansi - 18.11.2004 20:42
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Hansi,


> >
> > 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
> > ......
> >

> >
> > eine andere Variante funktioniert
> >
> > P1L_  EQU 0FF04h
> > P1H_ EQU 0FF06h
> >
> > .....
> >           EXTS #0,#1
> >           mov    r2,P1L_            ; so funktioniert es
> > ......
> >

> >
> > 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:

$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


Das C2-Testproggie dazu:
//------------------------------------------------
  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);
 }
}


     
> 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.


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Portzugriff aus Segment 3 (von Hansi - 19.11.2004 22:35)
    Re: Portzugriff aus Segment 3 (von Hansi - 20.11.2004 10:53)