Source code files – Motorola USB08 User Manual
Page 114
Designer Reference Manual
USB08 Evaluation Board
114
Source Code Files
MOTOROLA
Source Code Files
void delayHalfBit() {
// subtract ~20 Clocks for Overhead!
// 120 * 5 Clocks = 600 Clocks
_asm("\
lda #120
\n\
__dhbl:deca
\n\
nop
\n\
bne __dhbl
\n\
");
}
void delayBitTime() {
delayHalfBit();
delayHalfBit();
}
//----------------------------------------------------------------------------
void initSSCI() {
setTxHigh();
// set Output Data Latch H
enaTxOut();
// enable Output Driver for Tx
enaRxIn();
// Rx is an Input Line
}
//----------------------------------------------------------------------------
void putSSCI(char c) {
unsigned char n;
unsigned char ccr_save;
//
ccr_save = getCCR();
// save current Interrupt Mask
//
disableINTR();
// disable Interrupts
setTxLow();
// send Startbit
delayBitTime();
n=8;
do {
// send 8 Databits, LSB first
if((c&1)==0)
setTxLow();
else
setTxHigh();
delayBitTime();
c >>= 1;
} while(--n);
setTxHigh();
// send Stopbit
delayBitTime();
delayBitTime();
//
setCCR(ccr_save);
// restore previous Interrupt Mask
}