( 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 0080 D07 ! ( SCR REG. TMRA0 CAP MODE RISING EDGE 0000 D05 ! ( ZERO TMRA0 CNTR REG. THEN ; : INIT 7A00 D06 ! ( CTRL REG. TMRA0 CNT RISING IP/32 2ND PIN#0 EVERY C350 CYCLES SCHEDULE-RUNS PLS ; INIT : BEARING D02 @ DUP U. 470 - 0 7C UM/MOD SWAP DROP . ." deg. " ; : Z INIT DECIMAL BEGIN D EMIT BEARING ?TERMINAL UNTIL ;