using ISD2560 on PIC18F4620


Closed Thread
Results 1 to 13 of 13

Hybrid View

  1. #1
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default

    peterdeco1, Here is a subroutine I wrote quite a few years back for a repeater. The plyrec flag is for playback/record. It uses the chip select, interrupt, eom, mosi and clock. It was for recording and playing back 6, 20 second messages from a 120 second part. I hope it helps....

    Dave Purola,
    N8NTA



    '************************************************* ********************
    ISDDVR1:' SPI DRIVER FOR ISD-33120 DVR
    '************************************************* ********************
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[%00100\5] 'SEND POWER-UP COMMAND
    ISDSEL = 1 'SET <>CE HIGH
    PAUSTIME = 30 'WAIT FOR POWER-UP SEQUENCE TO COMPLETE
    GOSUB WAITIME
    IF PLYREC=0 THEN REC 'CHECK FOR RECORD MODE

    PLY:
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[((DRCHANL MIN 5)*133)\11,%11100\5] 'START PLAYBACK @ ADDRESS
    ISDSEL = 1 'SET <>CE HIGH
    PAUSE 1
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[%11110\5] 'CONTINUE PLAYBACK @ ADDRESS
    ISDSEL = 1 'SET <>CE HIGH
    TIMSTAMP = 0
    WHILE TIMSTAMP<20000 'WAIT FOR 20 SEC or UNTIL EOM
    IF EOM_OVF=0 THEN CLRDR 'CHECK FOR EOM, IF NOT BUSY THEN FINISHED
    WEND
    GOTO CLRDR 'NO EOM BIT TO BE FOUND IN TIME

    REC:
    TIMSTAMP = 0
    WHILE TIMSTAMP<3000 'START TIMING LOOP FOR UNKEY (~3 SEC)
    IF COR=1 THEN CONTREC 'WAIT FOR COR/COS TO DROP
    WEND
    GOTO CLRDR 'NO UNKEY TO BE FOUND IN TIME

    CONTREC:
    TIMSTAMP = 0
    WHILE TIMSTAMP<3000 'START TIMING LOOP FOR UNKEY (~3 SEC)
    IF COR=0 THEN SREC 'CHECK FOR COR/COS PRESENT
    WEND
    GOTO CLRDR 'TIME IS UP SO, FINISH OPERATION

    SREC:
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[((DRCHANL MIN 5)*133)\11,%10100\5] 'START RECORD @ ADDRESS
    ISDSEL = 1 'SET <>CE HIGH
    PAUSE 1
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[%10110\5] 'CONTINUE RECORD @ ADDRESS
    ISDSEL = 1 'SET <>CE HIGH
    TIMSTAMP = 0
    WHILE TIMSTAMP<19900 'WAIT FOR 19.9 SEC or UNTIL EOM
    IF EOM_OVF=0 OR COR=1 THEN CLRDR 'IF COR/COS DROPPED OR EOM THEN STOP RECORD
    WEND

    CLRDR:
    ISDSEL = 0 'SET <>CE LOW
    SHIFTOUT MOSI,SCLK,0,[%00000\5] 'STOP REC/PLY @ POWER DOWN
    ISDSEL = 1 'SET <>CE HIGH
    RETURN

  2. #2
    Join Date
    Nov 2007
    Location
    Old Lyme, Connecticut
    Posts
    6


    Did you find this post helpful? Yes | No

    Default

    Well Dave,

    I think you've saved me a ton of trial and error! Thanks!

    - Don

Similar Threads

  1. PIC18F4620 Programming problem
    By JavPar in forum mel PIC BASIC Pro
    Replies: 15
    Last Post: - 6th December 2008, 05:21
  2. ADCIN with PIC18F4620
    By Brian J Walsh in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 4th July 2008, 02:25
  3. PIC18F4620 Using the Internal Oscillator
    By kiwipiper in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 23rd October 2007, 09:07
  4. PIC18F4620 not Target Device
    By kiwipiper in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 17th October 2007, 20:42
  5. PIC18F4620 Troubles
    By CluckShot in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 16th May 2007, 04:02

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts