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 Erich, > > > da es mir ein Rätsel ist, was es mit diesem "Offset" bei den interrupt-Routinen auf sich hat, bitte ich > > euch um Rat. > > "Offset" ist einfach die Einsprungadresse an der die Routine liegt. > Der Zulässige Wert ist 0 bis 65534. (nur gerade Werte) > Der nächste Parameter ist das Segment, in dem die Interrupt-System-Routine liegt. > I.d.R. sind die Segmente 1, 2 und 3 möglich. Allerdings kann man kleine Routinen > auch im RAM ablegen und von dort ausführen. Einerseits im MCU-RAM in Segment 0, > andererseits auch im SRAM, welches Segment 8 darstellt. > > > Wie komme ich auf die Adresse einer Variable, damit ich sie in einer Assembler-Routine > > inkrementieren kann? > > Wenn Du nur eine Variable inkrementieren willst, ist es reichlich umständlich, dafür > eine extra Interruptroutine zu schreiben. Zumal das OS dies bereits integriert hat. > Mit <code>ports.getcount()</code> kannst Du ganz bequem einzeln > die vier Counter-Ports auslesen: > <code>int counter; > > counter=counter+ports.getcount(0); // Counter 0 Abfragen (P1H.0) > </code> > > Was die Parameterübergabe angeht, so ist die einfachste Möglichkeit > die über den Rechenstack. Dazu gibt es ein kleines Bsp. unter "Assembler". > Alternativ kannst Du Dir dazu z.B. den Quellcode von den Systemtreibern > sys0001 und sys0002 ansehen. > > Etwas anders sieht es aber bei interruptroutinen aus. > Hier benutzt Du am besten freie Bereiche des Bit-Adressierbaren Bereichs > des Controller-internen RAMs. > Der Bereich 0xFD01 bis 0xFDFD (Segment 0) kann problemlos genutzt werden. > Mit den VM-Codes VM_STORE_ABSOLUE_INT und VM_LOAD_ABSOLUTE_INT > kann darauf problemlos aus C2 heraus zugegriffen werden. > (genauso sind auch Byte-und und Long-Zugriffe mit den entspr. VM-Codes möglich. > Bei allen Zugriffen, außer Byte, muß die Speicheradresse geradzahlig sein.) > <code> > function readFD02() returns int > { > inline vmcodes.VM_LOAD_ABSOLUTE_INT; > inline 0xFD02; > } > > function writeFD02(int value) > { > inline vmcodes.VM_STORE_ABSOLUTE_INT; > inline 0xFD02; > }</code> > > Es gibt noch einen Bereich mit 100 Byte, welcher aber für > Flash Schreib-und Leseoperationen genutzt wird. Somit auch vom Modul flash.c2 . > Darum gehe ich auf diesen Bereich nicht näher ein. > > > Wie schaffe ich mehr als nur eine Interrupt-Assembler-Routine? > > Indem Du einfach mehrere Routinen schreibst und sie mit <code>system.hook()</code> > an die verschiedenen Events hängst. > > > Dass man das > > mischen muss ist ja wirklich eine Schwäche am ganzen C-Control-System. Sollte man vielleicht einen > > anderen Controller wählen? Ich bin etwas verzweifelt, muss ich sagen. > > Also genau das ist eher eine Stärke, als eine Schwäche. > Daß Du das siehst kann ich beim besten Willen nicht nachvollziehen. > Das beste wird wohl sein, daß Du zu aller erst das Handbuch zur Hand nimmst, > und die Kapitel 1 bis 4 liest. > > > Das Hauptproblem, was ich immer wieder erlebe, ist einfach das, daß immer wieder > die Leute weigern Handbücher zu lesen, oder diese wenigstens zum Nachschlagen > zu benutzen. > Es geht eben nicht, daß man den Controller einfach anschließt und ein bißchen > irgendetwas schreibt und schon funzt alles, ohne vorher die Grundlagen anzueignen. > Wenn jemand dazu nicht bereit ist, braucht er sich mit µController erst > garnicht zu beschäftigen > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB