longer delay cascading arrays upto 700ms
Code:
'****************************************************************
'* Name : delayline.BAS *
'* Author : richard *
'* Notice : *
'* : All Rights Reserved *
'* Date : *
'* Version : 1.0 *
'* Notes : 16f1825 *
'* : *
'****************************************************************
#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _CP_OFF & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CLKOUTEN_OFF
__config _CONFIG2, _PLLEN_ON & _LVP_OFF
#ENDCONFIG
OSCCON=$70
DEFINE OSC 32 ' Oscillator internal
ANSELA=0
ANSELC=0 ' Select no analog
TRISA=%111111
TRISC=%001111
PulseArray0 var byte [32] ' 1023 bits total this will allow delay of upto 700ms
PulseArray1 var byte [32]
PulseArray2 var byte [32]
PulseArray3 var byte [32]
tail var byte
head var byte
Arraytail var byte
clear
Arraytail=0
RunController:
tail = Arraytail
head = tail+1
PulseArray0.0[tail] = Porta.5 'set the last bit in the array as per b.0
PulseArray1.0[tail]= PulseArray0.0[head]
PulseArray2.0[tail]= PulseArray1.0[head]
PulseArray3.0[tail]= PulseArray2.0[head]
Arraytail = head
latc.4 = !latc.4 ' use p4 to check loop time on scope
latc.5 = PulseArray3.0[head] ' output this bit ~ 700ms delay
pauseus 500 ; adj to suit
goto RunController
Bookmarks