Hi Derrel,
Thanks for the code, Unfortunately I was hoping for something that would allow me to set different values to the duty cycle of each channel. The way I have it configured I use CH# as the var name:
Code:
DEFINE SPWM_FREQ 100 ; SPWM Frequency
DEFINE SPWM_RES 101 ; SPWM Resolution
DutyVars VAR BYTE[16] ; DutyCycle Variables
CH1 VAR DutyVars[0] ; group them in an array for easy access
CH2 VAR DutyVars[1] ; with FOR loops etc.
CH3 VAR DutyVars[2]
CH4 VAR DutyVars[3]
CH5 VAR DutyVars[4]
CH6 VAR DutyVars[5]
CH7 VAR DutyVars[6]
CH8 VAR DutyVars[7]
CH9 VAR DutyVars[8]
CH10 VAR DutyVars[9]
CH11 VAR DutyVars[10]
CH12 VAR DutyVars[11]
CH13 VAR DutyVars[12]
CH14 VAR DutyVars[13]
CH15 VAR DutyVars[14]
CH16 VAR DutyVars[15]
and change the duty in this manor:
Code:
Main:
gosub CKINPUT
CH1 = 100
CH2 = 0
CH3 = 0
CH4 = 0
CH5 = 0
CH6 = 0
CH7 = 0
CH8 = 0
CH9 = 0
CH10 = 0
CH11 = 0
CH12 = 0
CH13 = 0
CH14 = 0
CH15 = 0
CH16 = 0
gosub CKINPUT
PAUSE T5
CH1 = 100
CH2 = 100
CH3 = 0
CH4 = 0
CH5 = 0
CH6 = 0
CH7 = 0
CH8 = 0
CH9 = 0
CH10 = 0
CH11 = 0
CH12 = 0
CH13 = 0
CH14 = 0
CH15 = 0
CH16 = 0
gosub CKINPUT
PAUSE T5
and so on... If anyone can suggest a better method I would be very interested in learning better ways to program.
Bookmarks