<| \ PORT.F08 B% 11111111 PA C! \ all pins high on PA B% 11111111 DPA C! \ all pins output on PA DPB 0 B0! \ pin DPB 0 low PB 0 B@ \ read PB 0 |> <| \ ADC.F08 HEX :CODE ADC@ \ ( --- C1 ) read PB0 3E B% 01010000 #. MOV, \ 2,56 MHz /4 = 0,64MHz clock 3C B% 00000000 #. MOV, \ switch ADC on,select channel, \ start conversion \ ^ 0 = single conversion \ 000 PB0 \ ... ... \ 111 PB7 1 $: 1 $ 3C 7 BBC, \ wait for ready flag set 3D LDA, \ read data 3C 1F #. MOV, \ switch ADC off DEX, 0,X STA, \ put data on stack A. CLR, DEX, 0,X STA, RTS, CODE; |> <| \ SAMPLE.F08 \ Copy A/D PB0 to 8 Bit R2R D/A on Port PA :CODE TIRQ PD 3 MBS, \ Pin PD 3 high 2B 7 MBC, \ clear IRQ-Flag PA 3D MOV, \ copy A/D PB0 data to PA 3C B% 00000000 #. MOV, \ start conversion PB0 PD 3 MBC, \ Pin PD 3 low RTI, CODE; :CODE RUN 2E CLR, \ T2MODH samplerate 2F D% 77 #. MOV, \ T2MODL 2B B% 01000000 #. MOV, \ T2SC prescaler \ 000 /1 2,45 MHz \ 001 /2 \ 010 /4 \ 011 /8 \ 100 /16 \ 101 /32 \ 110 /64 \ 111 illegal \ ^ TO2E interrupt enabled DPA FF #. MOV, \ PA to output 3E B% 00110000 #. MOV, \ clock for A/D : \ 2,45 MHz /4 = 0,61 MHz DPD 3 MBS, \ PD 3 to output CLI, \ interrupt enabled 1 $: 1 $ BRA, \ infinite loop CODE; \ Vector in SYS-EE ´ TIRQ 80D9 E! CC 80D8 EC! \ JMP,-Opcode |> <| \ TIRQ.F08 HEX :CODE TIRQ 20 7 MBC, \ T1SC clear interruptflag N INC, N LDA, PA STA, \ increment N , write to PA RTI, CODE; :CODE RUN \ timerinterrupt 23 CLR, \ T1MODH T1MOD = 0004 24 4 #. MOV, \ T1MODL 20 B% 01000101 #. MOV, \ T1SC of Timer prescaler \ 000 /1 2,45 MHz \ 001 /2 1,225 MHz \ 010 /4 612 kHz \ 011 /8 306 \ 100 /16 153 \ 101 /32 76,5 \ 110 /64 38,2 \ 111 illegal \ ^ TOIE interrupt enabled DPA FF #. MOV, \ Port PA to output CLI, \ interrupt enabled 1 $: 1 $ BRA, \ infinite loop CODE; \ Vector in SYS-EE to TIRQ CC 80E1 EC! \ JMP,-Opcode ´ TIRQ 80E2 E! |> <| \ TIMER.F08 HEX \ Copy Timer ( ramp ) to 8 Bit R2R D/A on Port PA :CODE RUN \ ( --- ) 23 FF #. MOV, \ T1MODH T1MOD = FFFF 24 FF #. MOV, \ TiMODL 20 B% 00000101 #. MOV, \ T1SC of Timer \ 000 /1 2,45 MHz \ 001 /2 \ 010 /4 \ 011 /8 \ 100 /16 \ 101 /32 \ 110 /64 DPA FF #. MOV, \ PA to output 1 $: 21 TST, \ T1CNTH HB lesen 22 LDA, \ T1CNTL LB lesen PA STA, \ write to PA 1 $ BRA, CODE; |> <| \ PWM.F08 HEX :CODE RUN 20 B% 00110000 #. MOV, \ T1SC \ ^ TSTOP \ ^ TRST 23 01 #. MOV, \ T1MODH period 24 FF #. MOV, \ T1MODL 26 00 #. MOV, \ T1CH0H pulswidth 27 00 #. MOV, \ T1CH0L 20 B% 00000000 #. MOV, \ T1SC select prescaler \ 000 /1 2,45 MHz \ 001 /2 \ 010 /4 \ 011 /8 \ 100 /16 \ 101 /32 \ 110 /64 25 B% 00101010 #. MOV, \ T1SC mode of operation \ ^ TOV1 toogle on overflow \ ^^^^ clear output on compare \ ^ link Channel 0 and 1 for buffered PWM RTS, CODE; |> <| \ 125KHZ.F08 \ Bus = 2,45 MHz :CODE RUN \ ca. 125kHz on PD4 0020 B% 00110000 #. MOV, \ T1SC Stop reset 0023 00 #. MOV, \ T1MODH 0024 D% 09 #. MOV, \ T1MODL 25 B% 10010100 #. MOV, \ T1SC0 \ ^ Input Capture or Output Compare on this channel \ ^ Interrupt disabled \ ^ Buffered output compare disabled \ ^ Unbuffered output compare enabled \ ^^ Toggle \ ^ Pin Toggles on overflow \ ^ Duty Cycle 0020 B% 00000000 #. MOV, \ T1SC Prescaler /1 RTS, CODE; |> <| \ Autostart \ CONFIG-Register 01 #. LDA, 1E STA, \ CONFIG2' UART-Baudrate = Bus 01 #. LDA, 1F STA, \ CONFIG1' Watchdog disabled \ Clock to 2,45 MHz 36 5 MBC, \ PCTL PLL-OFF 36 B% 00000000 #. MOV, \ PCTL P = 0 \ PCTL E = 1 38 01 #. MOV, \ PMSH 39 2C #. MOV, \ PMSL 3A 80 #. MOV, \ PMRS 3B 01 #. MOV, \ PMDS 36 5 MBS, \ PCTL PLL-ON 37 7 MBS, \ PBWC auto bandwidth 3 $: 3 $ 37 6 BBC, \ wait for PLL to lock in 36 4 MBS, \ PCTL VCO = sysclock \ RAM to 00 0000 #. LHX, TXA, 1 $: 40 ,X STA, INX, 1 $ BNE, 2 $: 140 ,X STA, INX, 2 $ BNE, 3 $: 240 ,X STA, INX, 3 $ BNE, SOLVE$ \ Pseudoopcodes in RAM for FORTH 81 #. LDA, \ RTS, NOPC 3 + STA, NOPC 6 + STA, \ FORTH-Stackpointer 00DC #. LHX, \ Delay 2,45 MHz for MSEC D% 64 #. LDA, UDLY STA, \ LED on 0C 0 MBS, \ PE 0 = output 08 0 MBS, \ PE 0 = high LED = on \ init UART 13 6 MBS, \ SCC1 ENSCI enable SCI 14 3 MBS, \ SCC2 TE enable transmit 14 2 MBS, \ SCC2 RE enable receive \ baud rate UART 9600 Baud for 2,45 MHz 19 20 #. MOV, |>