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

Setzen mehrerer I/O Ports unter Assembler Kategorie: Progr. Assembler, TaskingTools, OS (von Ralf - 3.02.2003 16:44)


Hallo,

ich habe mir die Einführung in Assembler aus dem Buch "MSR mit der CControl II" angesehen und nachprogrammiert. Das setzen eines Digitalports mit bset und bclr funktioniert prima. So und hier ist meine Frage:

Was muss ich machen, um in Assembler nicht nur einen Port, sondern mehrere gleichzeitig zu setzen. Ich habe, da ich schnelle Portwechsel auf 11 Ports brauche, versucht eine Bitmaske (also 10101010) auf P1L zu setzen (MOV P1L,#170). Auch das hat noch funktioniert. Aber wenn ich die Bitmaske variabel halten will (wird vom C2-Programm ans Assembler Programm übergeben) bekomme ich einer Fehlermeldung des Tasking-Assemblers. Mein Anweisung sieht wie folgt aus:

MOV R4, [R1+#4], schieben der Bitmaske aus dem C2Programm nach R4
MOV P1L, R4   (habs auch schon mit RL4 probiert)

Fehlermeldung:
no DPP assigned to SYSTEM, connot convert system address to MEM address

Wie muss ich auf die Special Function Register P1L und P1H zugreifen. Ich habe mir mal das disassemblierte Betriebssytem von der CC2NET Seite angesehen. Auch da wird nur mit einem MOV Befehl der komplette Digitalport (zumindest 1 Byte) gesetzt!

Vielleicht hat ja einer eine Idee.

Ralf


    Antwort schreiben


Antworten:

Re: Setzen mehrerer I/O Ports unter Assembler (von DIE HARD - 5.02.2003 11:30)