''AudioController.spin '' This is the top object for the Propeller Audio Controller interface. '' It is meant to run over a USB port, getting its instructions from the Apple Mac Pro '' CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 VAR BYTE myStr byte LF byte RF byte MICR byte KEYR byte STRT byte stay1 OBJ Debu : "LED_DEMO_Extended_FDSerial" PUB LedTEST DIRA[00..29]~~ OUTA[00..29] := 0 Debu.start(31, 30, 0, 19200) waitcnt(clkfreq*2 + cnt) Debu.rxflush repeat Debu.rxflush Debu.str(string("Start Data Acquisition",10,13)) repeat until STRT == 48 Debu.str(string("Enter STRT",10,13)) STRT := Debu.rx ' OUTA[23] := 1 Debu.tx(STRT) Debu.str(string(" equals STRT",10,13,10,13)) if STRT == 48 ' OUTA[23] := 1 else Debu.str(string("Wrong initialization constant",10,13,10,13)) STRT := 0 Debu.str(string("Enter LF",10,13)) OUTA[00..06] := 0 repeat LF := Debu.rx while LF <48 or LF >56 if LF == 49 OUTA[00] := 1 ' OUTA[23] := 1 elseif LF ==50 OUTA[01] := 1 elseif LF ==51 OUTA[02] := 1 elseif LF ==52 OUTA[03] := 1 elseif LF ==53 OUTA[04] := 1 elseif LF ==54 OUTA[05] := 1 elseif LF ==55 OUTA[06] := 1 elseif LF ==56 OUTA[00..06] := 0 Debu.tx(LF) Debu.str(string(" equals LF ",10,13,10,13)) elseif LF == 255 Debu.str(string(" No data received for LF ",10,13,10,13)) Debu.tx(LF) Debu.str(string(" equals LF ",10,13,10,13)) ' OUTA[23] := 0 Debu.str(string("Enter RF",10,13)) ' RF := Debu.rxDecTime(2000) repeat RF := Debu.rx while RF < 48 or RF > 56 OUTA[07..13] := 0 if RF == 49 OUTA[07] := 1 ' OUTA[23] := 1 elseif RF ==50 OUTA[08] := 1 elseif RF ==51 OUTA[09] := 1 elseif RF ==52 OUTA[10] := 1 elseif RF ==53 OUTA[11] := 1 elseif RF ==54 OUTA[12] := 1 elseif RF ==55 OUTA[13] := 1 elseif LF ==56 OUTA[08..13] := 0 Debu.dec(RF) Debu.str(string(" equals RF ",10,13,10,13)) elseif RF == 255 Debu.str(string(" No data received for RF ",10,13,10,13)) Debu.tx(RF) Debu.str(string(" equals RF ",10,13,10,13)) ' OUTA[23] := 0 Debu.str(string("Enter MICR",10,13)) ' MICR := Debu.rxDecTime(2000) repeat MICR := Debu.rx while MICR < 48 or MICR > 56 OUTA[14..20] := 0 if MICR == 49 OUTA[14] := 1 elseif MICR ==50 OUTA[15] := 1 elseif MICR ==51 OUTA[16] := 1 elseif MICR ==52 OUTA[17] := 1 elseif MICR ==53 OUTA[18] := 1 elseif MICR ==54 OUTA[19] := 1 elseif MICR ==55 OUTA[20] := 1 elseif LF ==56 OUTA[14..20] := 0 elseif MICR == 255 Debu.str(string(" No data received for MICR ",10,13,10,13)) Debu.tx(MICR) Debu.str(string(" equals MICR ",10,13,10,13)) ' OUTA[23] := 0 Debu.str(string("End Data Acquisition",10,13,10,13)) Debu.rxflush ' OUTA[23] := 0