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, > > folgendes Assemblerprogramm dient zur Belichtungszeiterzeugung für ein > Aufnahmesystem: > > > <asm> > > $case > $segmented > $model(medium) > $extend > $nomod166 > $stdnames(reg164ci.def) > > regdef R2 > regdef R3 > regdef R4 > regdef R5 > ;*************************************************** > userseg SECTION CODE word at 30000h > assume dpp3:userseg > assume dpp3:system > ;*************************************************** > ;Loops: 1,2,3,4,5,6,7,8,9 > public belichtungszeit > > belichtungszeit proc far > ;Interrupt deaktivieren > bclr CC8IE > bclr P1H.6 > bclr P1H.7 > mov R2,#1 > mov R3,#1 > mov R4,#1 > mov R5,#1 > ;Kamera öffnen Anfang > bset P1L.4 > ;Verschluss_1 öffnen Anfang > ;Rollei auffahren > bclr P1L.1 > bclr P1L.0 > ;5ms warten bis Verschluss geöffnet > Loop5: > Loop4: > nop > cmpi1 R2,#1775 > jmpr cc_SLT,Loop4 > mov R2,#1 > cmpi1 R3,#5 > jmpr cc_SLT,Loop5 > mov R3,#1 > ;Verschluss_1 halt: > bset P1L.1 > bclr P1L.0 > ;Verschluss_1 öffnen Ende > ;Verschluss_2 öffnen > mov R2,#1 > mov R3,#1 > mov R4,T3 > ;mov R4,#3000 > add R4,#1 > bset P1L.2 > bset P1L.3 > Loop1: > Loop2: > nop > cmpi1 R2,#850 > jmpr cc_SLT,Loop1 > mov R2,#1 > bset P1L.5 ;Blitz > Loop3: > nop > cmpi1 R2,#925 > jmpr cc_SLT,Loop3 > mov R2,#1 > add R3,#1 > cmp R3,R4 > jmpr cc_SLT,Loop1 > ;Verschluss_2 schließen > bclr P1L.2 > bclr P1L.3 > ;Blitz zurücksetzen > bclr P1L.5 > ;Verschluss_1 schließen Anfang > ;Verschluss_1 zufahren > bclr P1L.1 > bset P1L.0 > ;5ms warten > mov R2,#1 > mov R3,#1 > Loop7: > Loop6: > nop > cmpi1 R2,#1775 > jmpr cc_SLT,Loop6 > mov R2,#1 > cmpi1 R3,#5 > jmpr cc_SLT,Loop7 > mov R3,#1 > ;Verschluss_1 festbremsen: > bset P1L.1 > bclr P1L.0 > ;Verschluss_1 schließen Ende > ;bset P1L.0 > ;bclr P1L.1 > ;Kamera schließen > bclr P1L.4 > ;Taster entprellen > Loop8: > Loop9: > nop > cmpi1 R2,#1775 > jmpr cc_SLT,Loop8 > mov R2,#1 > cmpi1 R3,#1000 > jmpr cc_SLT,Loop9 > mov R3,#1 > bclr P1H.0 > ;Interrupt wieder einschalten > bset CC8IE > rets > testport endp > userseg ends > end > </asm> > > Aufgerufen wird die Assmblerroutine mit folgendem C2-Programm (Auszug): > > <code> > > thread main > { > system.hook (system.EVENT_P1H0,3,0,system.HOOK_BEFORE); > loop > { > } > > </code> > > AM P1H0 ist ein taster angebracht. Das Problem ist nun, daß die Entrpellung im Maschinencode > so nicht funktioniert. Das System scheint sich die beim Prellen entstehende zweite fallende Flanke > (konnt ich Oszillografieren) zu merken und führt die Routine nach Ende der Wartezeit sofort > nochmals aus. > > Woran liegt das? Gibt es eine Lösung für das Problem? Kann der Interrupt evtl. wegen des Betriebssystems von > Assembler aus nicht stillogelegt werden? > Mittlerweile bin ich kurz davor, ein FlipFlop auf Platine zu basteln und den Taster so zu entprellen. > > Gruß, > Harald > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB