M68HC16 Z SERIES
INITIALIZATION AND PROGRAMMING EXAMPLES
MOTOROLA
USER’S MANUAL
E-25
AIX
#$01
;increment IX to point to the next byte
BRA
SEND_STRING
;loop back and do next byte in string
STRING_DONE:
;subroutine to implement delay between messages
LDE
#$FFFF
;load accumulator E with the delay time
STE
0,Z
;set up the counter
LOOP:
DECW 0,Z
;decrement the counter
BNE
LOOP
;count down to zero
RTS
;finish delay loop go back to main
SEND_CH:
;subroutine to send out one byte to SCI
LDAA SCSR
;read SCI status reg to check/clear TDRE bit
ANDA #$01
;check only the TDRE flag bit
BEQ
SEND_CH
;if TDR is not empty, go back to check it again
LDAA #$00
;clear A to send a full word to SCDR ($FFC0E)
STD
SCDR
;transmit one ASCII character to the screen
TC_LOOP:
LDAB SCSR+1
ANDB #$80
;test the TC bit (transfer complete)
BEQ
TC_LOOP
;continue to wait until TC is set
RTS
;finish sending out byte
STRING
DC
'I AM A HAPPY EVB16 RUNNING YOUR CODE!!!',0A,0D,00
*****
Interrupts/Exceptions
*****
BDM: BGND
;exception vectors point here
;and put the user in background debug mode
*****
Reserve data and stack space
*****
ORG
$10000
;start of 1K internal SRAM for data & stack
COUNTER DS
2
;space for delay counter
E.2.4 GPT Programming Example
The following programming example involves demonstrating basic general-purpose
timer module (GPT) functions.
GPT.
E.2.4.1 Example 7 - Basic GPT Functions
*
Description : This program demonstrates some basic GPT functions.
*
The 1st demo requires that the pins OC2, IC1, IC2,
*
and IC3 be tied together so that OC2 may drive
*
IC1, IC2, & IC3.
*
* In the second demo, the PAI pin should be connected
*
to the PWMA pin.
A bell on the dummy terminal
*
will ring when the Pulse Accumulator Counter