The answer is in the Error messages:

Originally Posted by
midali
hi to all,
Error[101] C:\LUCRU\TEST_SPWM_INT.ASM 238 : ERROR: (wsave variable not found,)
Error[101] C:\LUCRU\TEST_SPWM_INT.ASM 204 : ERROR: (" Add:" wsave VAR BYTE $20 SYSTEM)
Error[101] C:\LUCRU\TEST_SPWM_INT.ASM 259 : ERROR: (Chip has RAM in BANK1, but wsave1 was not found.)
Error[101] C:\LUCRU\TEST_SPWM_INT.ASM 211 : ERROR: (" Add:" wsave1 VAR BYTE $A0 SYSTEM)
It says, " Add:" wsave VAR BYTE $20 SYSTEM
and also " Add:" wsave1 VAR BYTE $A0 SYSTEM
So, your code might look like this now:
Code:
'****************************************************************
'* Name : Test_SPWM.pbp *
'* Author : Darrel Taylor *
'* Date : 9/30/2006 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
; Initialize your hardware first
DEFINE OSC 20
CLEAR
INCLUDE "..\DT_INTS-14.bas" ; Base Interrupt System
INCLUDE "SPWM_INT.bas" ; Software PWM module
wsave VAR BYTE $20 SYSTEM
wsave1 VAR BYTE $A0 SYSTEM
DEFINE SPWM_FREQ 40 ; SPWM Frequency
DEFINE SPWM_RES 256 ; SPWM Resolution
DutyVars VAR BYTE[3] ; DutyCycle Variables
DutyVar1 VAR DutyVars[0] ; group them in an array for easy access
DutyVar2 VAR DutyVars[1] ; with FOR loops etc.
DutyVar3 VAR DutyVars[2]
ASM
SPWM_LIST macro ; Define PIN's to use for SPWM
SPWM_PIN GPIO, 0, _DutyVar1
SPWM_PIN GPIO, 1, _DutyVar2
SPWM_PIN GPIO, 2, _DutyVar3
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
;_____________________________________________________________________________
RandVar VAR WORD : RandVar = 12345
LoopCount VAR WORD
Main: ; Simple Demo to fade/flash some LED's
DutyVar1 = 5 ; Start with 3 LED's at different
DutyVar2 = 50 ; brightness
DutyVar3 = 150
pause 3000
FOR LoopCount = 1 to 4 ; Reapeat 4 times
for DutyVar1 = 0 to 150 ; Fade LED1 UP
pause 10
RANDOM RandVar
DutyVar3 = RandVar & $3F ; Give LED3 a random dutycycle
next DutyVar1
for DutyVar1 = 150 to 0 STEP -1 ; Fade LED1 Down
pause 10
RANDOM RandVar
DutyVar2 = RandVar & $3F ; Give LED2 a random dutycycle
next DutyVar1
NEXT LoopCount
GOTO Main
Ioannis
Bookmarks