( CMPS03 Robot Compass Module ( 1 +5 ( 2 SCL I2C ( 3 SDA I2C ( 4 PWM out ( 5 ( 6 Calibrate ( 7 50/60HZ ( 8 ( 9 GND ( The PWM signal is a pulse width modulated signal with a positive width of ( pulse representing the angel 1ms equals 0 deg, 36.99ms equals 359.9 deg ( TMRA 0D00 ( TMRB 0D20 ( TMRC 0D40 ( TMRD 0D60 ( Count rising edges of primary source while secondary input high active ( 011 ( COUNT MODE ( 1101 ( PRIMARY COUNT SOURCE IP/32 ( 00 ( SECONDARY COUNT Counter # 0 input ( 0 ( COUNT ONCE - 0 FOR REPEATEDLY ( 0 ( COUNT LENGTH - 0 FOR ROLL OVER ( 0 ( DIR COUNT - 0 FOR UP ( 0 ( COINIT NO FORCE BY OTHER CHANNELS ( 000 ( OUPUT MODE, Active while counter is active ( 011 1101 00 0 0 0 0 000 ( 0111 1010 0000 0000 ( 7A00 ( STATUS 00 TCF, TCFIE ( 00 TOF, TOFIE ( 00 IEF, IEFIE ( 0 IPS ( 0 INPUT ( 10 CAPTURE REGISTER OPERATION CAP ON FALLING EDGE ( 0 MASTER ( 0 EEOF ( 0 VAL ( 0 FORCE ( 0 OPS ( 0 OEN ( 0080 ( BASE + F ( CMP1 VALUE ( BASE + 0 ( CMP2 VALUE ( BASE + 1 COLD HEX : PLS D07 @ 0100 AND 0= IF 7A00 D06 ! ( CTRL REG. TMRC0 CNT RISING IP/16 2ND PIN#0 0080 D07 ! ( SCR REG. TMRC0 CAP MODE RISING EDGE 0 D05 ! ( ZERO TMRA0 CNTR REG. 0 D40 ! ( ZERO TMRA0 CMP1 REG. ( 0 D01 ! ( ZERO TMRA0 CMP2 REG. THEN ( BEGIN D07 @ 0< UNTIL ( SPIN UNTIL CMP HAPPENS ILLEGAL PCC ; EVERY C350 CYCLES SCHEDULE-RUNS PLS ( : BEARING D02 @ DUP U. 4E2 - 0 7D UM/MOD SWAP DROP . ." deg. " ; ( : BEARING D02 @ DUP U. 4D4 - 0 7C UM/MOD SWAP DROP . ." deg. " ; : BEARING D02 @ DUP U. 470 - 0 7C UM/MOD SWAP DROP . ." deg. " ; : Z DECIMAL BEGIN D EMIT BEARING ?TERMINAL UNTIL ;