Für dieses Forum muß Javascript im Browser aktiviert werden!
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, > alter Beitrag ich weiß, aber da ist doch ein > 0x16be: ADDB RL6,#0x1 > 0x16c0: MOVBZ R12,RL6 > 0x16c2: CMP R12,R14 > 0x16c4: JMPR cc_SLT,0x16ac > enthalten, dass ist für mich eine Schleife die R14,#0xa vergleicht also 10 Einzelwerte die dann wieder > mit > > 0x16c8: MOV MDL,R4 > > 0x16cc: DIVU R14 > durch die Anzahl geteilt werden. Also Mittelwert der 10 Messungen. > > Gruß > > > Hat jemand eine Antwort, vielleicht die Programmierer des OS (mafoe) oder das CTC? > > > > Das Handbuch der C Control 2 Unit sagt auf Seite 32 im Kapitel A/D-Ports: > > > > ... Das Betriebssyszem nimmt im Hintergrund ständig A/D Wandlungen vor. Zur Reduzierung von Störeinflüssen werden die > > Spannungssignale durch eine gleitende Mittelwertbildung gefiltert. ... > > > > Das disassemblierte OS von Eric Hospel zeigt aber folgenden Code zur A/D Wandlung: > > > > 0x1690: MOV [-R0],R6VM_GET_ADC_PORT > > 0x1692: MOV R14,#0xa > > 0x1694: MOV R13,#0x0 > > 0x1696: AND R12,#0x7 alles ausblenden ausser Kanalnummer > > 0x1698: MOV R15,#0x1 > > 0x169a: SHL R15,R12 > > 0x169c: OR P5DIDIS,R15 > > 0x16a0: ADD R12,#0x100 !!!! Fixed Channel Single Conversion !!!! > > 0x16a4: MOV ADCON,R12 > > 0x16a8: MOVB RL6,#0x0 > > 0x16aa: JMPR cc_UC,0x16c0 > > 0x16ac: BSET ADSTStart conversion > > 0x16ae: JB ADBSY,0x16aeWait until ready > > 0x16b2: MOV R12,ADDATRead a/d result > > 0x16b6: AND R12,#0x3ff > > 0x16ba: ADD R13,R12 > > 0x16bc: BCLR ADST > > 0x16be: ADDB RL6,#0x1 > > 0x16c0: MOVBZ R12,RL6 > > 0x16c2: CMP R12,R14 > > 0x16c4: JMPR cc_SLT,0x16ac > > 0x16c6: MOV R4,R13 > > 0x16c8: MOV MDL,R4 > > 0x16cc: DIVU R14 > > 0x16ce: MOV R4,MDL > > 0x16d2: MOV R6,[R0+] > > 0x16d4: RETS > > > > Laut OS-Auszug wird also eine Einzelwandlung bei jedem Aufruf von ports.adc(channel); ausgeführt, > > und das Ergebnis unmittelbar zurückgegeben. Das deckt sich auch mit meinen Beobachtungen. > > > > Cris > >