Everything just fine using...
Code:
@ __CONFIG _HS_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_OFF
ANSEL = %00010111 ; - dt suggested value
DEFINE OSC 20
CMCON=7
TRISA=%11111111 'set PORTA as all input
TRISC=%00000001 'set PORTC as all output apart from RC0
DEFINE ADC_BITS 8 ' ADCIN resolution (Bits)
DEFINE ADC_CLOCK 2 ' ADC clock source (Fosc/32)
DEFINE ADC_SAMPLEUS 11 ' ADC sampling time (uSec)
INCLUDE "DT_INTS-14.bas" ; Base Interrupt System
INCLUDE "SPWM_INT.bas" ; Software PWM module
DEFINE SPWM_FREQ 150 ; SPWM Frequency
DEFINE SPWM_RES 255 ; SPWM Resolution
DutyVar VAR byte[4]
ASM
SPWM_LIST macro ; Define Pin's to use for SPWM
SPWM_PIN PORTC, 2, _DutyVar ; and the associated DutyCycle variables
SPWM_PIN PORTC, 5, _DutyVar+1 ; Notice the underscore before variables
SPWM_PIN PORTC, 4, _DutyVar+2
SPWM_PIN PORTC, 3, _DutyVar+3
endm
SPWM_INIT SPWM_LIST ; Initialize the Pins
ENDASM
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1_INT, SPWMhandler, ASM, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
@ INT_ENABLE TMR1_INT ; enable Timer 1 interrupts
;_____________________________________________________________________________
Main:
ADCIN 0, DUTYVAR[0]
ADCIN 1, DUTYVAR[1]
ADCIN 2, DUTYVAR[2]
ADCIN 4, DUTYVAR[3]
GOTO Main
GO GO GO FIGURE IT
Bookmarks