This is the same program that use lookup tables for data.
Was trying to use arrays - not working very well -some kind limitation for using data.
'* Notes : Target processor PIC16F84 *
'* : Driver for four applications *
'************************************************* ***************
DEFINE OSC 20
define __CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON
INCLUDE "modedefs.bas"
TRISA = 255 ' Set PORTA to all input
TRISB = %00000000 ' Set all of PORTB to outputs
youvar var bit
myvar var bit
hisvar var bit
hervar var bit
wevar var bit
cot var byte
cots var byte
rot var byte
rots var byte
sot var byte
sots var byte
Main:
PORTB = %00000000
myvar = PORTA.0 'Run = 1 Stop = 0
youvar = PORTA.1 'Direct rotation = 0 Reverse = 1 6200Hz
'two sin signal shifted by 90 degree
hisvar = PORTA.2 '10 Hz two generators 1-2-3-4 5-6-7-8
hervar = PORTA.3 '2 HZ two generators 1-2-3-4 5-6-7-8
wevar = PORTA.4 ' 1Hz Two Generators 1-2-3-4 5-6-7-8
if wevar = 1 then Gen1
if hervar = 1 then Gen2
IF hisvar = 1 then Gen3
if youvar = 0 then sRun1
if youvar = 1 then sRun2
goto main
Gen1:
For sots = 0 to 3
lookup sots, [$99,$CC,$66,$33],sot
PORTB = sot
PAUSE 250
myvar = PORTA.0
If myvar = 0 Then main
next sots
goto Gen1
Gen2:
For sots = 0 to 3
lookup sots, [$99,$CC,$66,$33],sot
PORTB = sot
PAUSE 125
myvar = PORTA.0
If myvar = 0 Then main
next sots
goto Gen2
Gen3:
For sots = 0 to 3
lookup sots, [$99,$CC,$66,$33],sot
PORTB = sot
PAUSE 25
myvar = PORTA.0
If myvar = 0 Then main
next sots
goto Gen3
sRun1:
myvar = PORTA.0 'Run = 1 Stop = 0
youvar = PORTA.1
if myvar = 0 then Main
if youvar = 1 then RotateL
goto main
sRun2:
myvar = PORTA.0 'Run = 1 Stop = 0
youvar = PORTA.1
if myvar = 0 then Main
if youvar = 1 then RotateR
goto main
RotateL:
for cots = 0 to 29
lookup cots, [$04,$15,$26,$37,$48,$59,$6A,$7B,$8C,$9D,$AE,$BF,$C E,$DD, $EC,_
$FB,$EA,$D9,$C8,$B7,$A6,$95,$84,$73,$62,$51,$40,$3 1,$22,$13],cot
PORTB = cot
PAUSEUS 5
myvar = PORTA.0
if myvar = 0 then Main
next cots
GOTO RotateL
RotateR:
for rots = 0 to 29
lookup rots, [$F4,$E5,$D6,$C7,$B8,$A9,$9A,$8B,$7C,$6D,$5E,$4F,$3 E,$2D,$1C,_
$0B,$1A,$29,$38,$47,$56,$65,$74,$83,$92,$A1,$B0,$C 1,$D2,$E3],rot
PORTB = rot
PAUSEUS 5
myvar = PORTA.0
if myvar = 0 then Main
next rots
GOTO RotateR
end
So appreciate any ideas what PIC can do in periods like delays PAUSEUS, PAUSE.
P.S. New York is state of mind
Bookmarks