' ========================================================================= ' ' File...... SpeakJet_SCP.BS2 ' Purpose... Magnevation SpeakJet SCP Demo ' Author.... Jon Williams ' E-mail.... jwilliams@parallax.com ' Started... ' Updated... 05 MAR 2004 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- ' pins on SpeakJet Activity Center Tx PIN 10 ' serial pin to SpeakJet BufOK PIN 11 ' high when buffer full Rst PIN 12 ' active-low reset ' -----[ Constants ]------------------------------------------------------- #SELECT $stamp #CASE BS2, BS2E, BS2PE T2400 CON 396 T4800 CON 188 T9600 CON 84 T19K2 CON 32 #CASE BS2SX, BS2P T2400 CON 1021 T4800 CON 500 T9600 CON 240 T19K2 CON 110 #ENDSELECT Baud CON T9600 ' -----[ Variables ]------------------------------------------------------- idx VAR Word vol VAR Word eeAddr VAR Word element VAR Byte ' -----[ EEPROM Data ]----------------------------------------------------- ClearBuf DATA "\0RX", 0 ClearAll DATA "\08J0N1J0N11J0N2J0N12J0N3J0N13J0NX", 0 AllOff DATA "\08J0N11J0N12J0N13J0NX", 0 DialTone DATA "\08J0N1J350N2J440N11J32N12J32NX", 0 BusyTone DATA "\08J0N1J480N2J620N11J0N12J0NX", 0 ' -----[ Initialization ]-------------------------------------------------- Setup: PAUSE 500 ' let SpeakJet get ready LOW Rst ' apply reset PAUSE 50 INPUT Rst ' release reset ' -----[ Program Code ]---------------------------------------------------- Main: eeAddr = DialTone GOSUB Send_SCP_String PAUSE 4000 eeAddr = ClearAll GOSUB Send_SCP_String PAUSE 2000 GOTO Main ' eeAddr = BusyTone GOSUB Send_SCP_String FOR idx = 0 TO 3 SEROUT Tx\BufOK, Baud, ["\08J0N11J32N12J32NX"] PAUSE 400 SEROUT Tx\BufOK, Baud, ["\08J0N11J0N12J0NX"] PAUSE 600 NEXT END ' -----[ Subroutines ]----------------------------------------------------- Wait_For_Ready: DO : LOOP UNTIL (BufOK = 0) ' wait until buffer ready RETURN Send_SCP_String: DO READ eeAddr, element ' get element from EE eeAddr = eeAddr + 1 ' point to next IF (element = 0) THEN EXIT ' end? if yes we're done SEROUT Tx\BufOK, Baud, [element] ' send element to SpeakJet LOOP RETURN