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 !  

> Danke für deine Antwort. Ich habe nun den korrekten Wert (1Fh) in Register S0BG geschrieben. An > dem Problem hat sich jedoch nichts geändert. Ich habe mich darauf einmal kurz mit > den gemachten Einstellungen befasst und bemerkt, dass hier ja die Interrupts bei Ein- und Ausgang > von Daten aktiviert werden. Diese haben natürlich nur dann eine Wirkung wenn IEN gesetzt wird. > Aus den Interrupt-Routinen im disassemblierten OS bin ich jedoch leider noch nicht ganz schlau geworden. > > Gibt es eine Möglichkeit auf diese zu verzichten? Während des Bootvorgangs werden diese doch auch > nicht benötigt. > > Hier mal mein Testcode: > <asm> > $case > $segmented > $model(medium) > $extend > $nomod166 > $stdnames(reg164ci.def) > regdef R0-R15 > > > code_s SECTION CODE WORD AT 00h > assume DPP3:code_s > assume DPP2:system > pa4cc2 PROC FAR > ;Initialisierung > DISWDT ;Watchdogtimer beenden > MOV STKOV,#0FA00H ;Stackgrenzen initialisieren > MOV STKUN,#0FC00H > MOV SP,#0FC00H ;Stack-Pointer initialisieren > MOV CP,#0FC00H ;Context-Pointer initilisieren > BFLDL BUSCON0,#37H,#15H ;Buskonfiguration > BFLDH BUSCON0,#12H,#00H > BFLDL SYSCON,#04H,#04H ;Systemkonfiguration > BFLDH SYSCON,#0FFH,#00H > EINIT ;Ende der Initialisierung > EXTR #1 ;extended Register > MOV DP1L,#0FFh ;P1L.6 auf Ausgang > > MOV S0CON,#8011h > MOV S0EIC,#00h > MOV S0RIC,#057h ;Interrupt enabled > MOV S0TIC,#056h ;Interrupt enabled > > MOV S0BG,#01Fh ;Baudrate 192000 > > ;BSET IEN ;Interrupt enable > > JNB T3EUD, cmd_Mode ;Hosttaste gedrückt? > > CALL gotoSeg3 > BSET P1L.6 ;P1L.6 setzen > endl: JMP endl ;Endlosschleife > gotoSeg3: CALLS 3,0 > JMP endl > cmd_Mode: MOV P1L,#080h > > recvCMD: > JNB S0RIR, recvCMD ;Auf Kommando-Byte warten > MOV R7,S0RBUF ;Kommando-Byte in R10 sichern > BCLR S0RIR ;Request-Flag wieder zuruecksetzen > > ;Kommando-Byte auswerten > CMP R7,#0 > JMPR cc_EQ, null > CMP R7,#1 > JMPR cc_EQ, eins > CMP R7,#2 > JMPR CC_EQ, zwei > > MOVB RL0,#0 ;wird ausgeführt wenn keiner der obigen Fälle zutrifft > CALL echo ;Echo ausgeben > > > err: MOV P1L,#11111100B > JMP err > > null: MOV P1L,#1110000B > JMP null > eins: MOV P1L,#1000000B > JMP eins > zwei: MOV P1L,#100000B > JMP zwei > > > ;Routine zum senden eines Echos > echo: > MOV P1L,#0FFh > JNB S0TIR,echo ;Ueberpruefen, ob Request-Flag > ; bereits gesetzt ist > MOV P1L,#0AAh > BCLR S0TIR ;Request-Flag wieder zuruecksetzen > MOVBZ R12,RL0 > MOV S0TBUF,R12 ;Daten in Sende-Register schieben > wait4: > BCLR P1L.7 > JNB S0TIR,wait4 ;warten, bis Daten gesendet wurden > RET ;Ruecksprung > </asm> > > An P1L habe ich einer LED-Schaltung. Hieran sehe ich, dass nie einer der 3 Fälle zutrifft und immer > zur Echo-Routine gesprungen wird. Diese hängt dann beim Überprüfen des Requestflags. > > Wenn ich IEN setze ist das natürlich hier wie ein Reset, da an den entsprechenden Interruptvektoren > nichts steht. Ich habe auch einmal ausprobiert S0TIC und S0RIC auf 0 zu setzen. Aber auch das hat > keinen Erfolg gebracht. > > Was genau machen also die Interrupt-Routinen im OS oder kann man darauf auch verzichten? > > Nochmals danke für die Hilfe > > Thomas >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB