After your program senses the first button push, your isd25120 message plays, but you are not cycling out that button push, you are going straight to another loop (BEGIN).
loop:
iF dtmf_ready = 0 Then loop ' Check for DTMF present, if none loop again
welcome:
portc = %00000000
pause 200
ce = 0
pause 200
ce = 1
begin:
if dtmf_ready = 0 then begin 'waits for number to be depressed
Try adding the following just after ( ce = 1 ) and just before ( begin: ) :
select_dtmf = 1 ' Enable the data output from the MT8870
Pause 1 ' Pause 1 mS to let data settle
dtmf_wait2:
IF dtmf_ready = 1 Then dtmf_wait2 ' Loop here until DTMF signal stops
select_dtmf = 0 ' Disable the MT8870 data output
reset = 0
pause 100
reset = 1
Also, lower down in the program you have more than once:
reset = 0
reset = 1
That is a very fast blip to the GT pin. Try giving it a chance to see it!
Add a PAUSE 100 between the trasistion.
reset = 0
pause 100
reset = 1
You probably notice I added this pause in the upper portion of the program too!
I am still trying to figure out how the routines for the password work, that sure is some creative programming! Maybe some comments beside them would help others (and me) understand it. (Or is it just me?) It does compile, but not sure how it works, or even it it does?!
Hope this helps
Bookmarks