Hi guys,
i'm building a project to test piezos and check what is the best working frequency.
I'm using a 12F615 and the code is very simple:
send frequency out using HPWM and when the sound from the piezo sounds about right and pressing a switch the frequency value will output via RS232.
The problem i'm having is that when activating HPWM the debug function does not work.
If i remove the bold definitions ( see below ) the debug works.
[code]
'************************************************* ***************
DEFINE OSC 8
OSCTUNE=%0000000
'************************************************* *****************
@ DEVICE PIC12F615, INTRC_OSC_NOCLKOUT
@ DEVICE PIC12F615, WDT_OFF
@ DEVICE PIC12F615, PWRT_OFF
@ DEVICE PIC12F615, MCLR_OFF
@ DEVICE PIC12F615, BOD_OFF
@ DEVICE PIC12F615, PROTECT_ON
@ DEVICE PIC12F615, IOSCFS_8MHZ
'************************************************* *****************ADCON0=0
ANSEL=0
WPU=0 ' Disable pull-ups
CMCON0.7=0 ' Turn off comparator
INTCON=0 ' Interrupt control register
OPTION_REG.7=1 ' Disable Pull-Ups
OPTION_REG.3=1 ' Disable Pull-Ups
CCP1CON=%10001100 ' PWM mode; P1A active-high; P1B active-high
PWM1CON=%10000001 ' min dead-band time
T2CON.2=0
T1CON.3=0
VRCON=0 ' Internal Vref disabled
TRISIO=%011001
GPIO=0
'************************************************* *****************
'PINS
sw1 var GPIO.0 'stop switch
out var GPIO.1 'OUT PIN for debug
piezo var GPIO.2 'output pwm
in var GPIO.3 'Input
sw2 var GPIO.4 'spare switch
Led var GPIO.5 'Led
'************************************************* *****************
PI1 var word
na var word
duty VAR WORD
freq var word
'************************************************* *****************
Include "modedefs.bas" ' Include serial modes
DEFINE DEBUG_REG GPIO
DEFINE DEBUG_BIT 1
DEFINE DEBUG_BAUD 9600
DEFINE DEBUG_MODE 1
'************************************************* *****************
'PWM
DEFINE CCP1_REG GPIO 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
'************************************************* ***************
INIT:
high out
debug $0D, $0A
PAUSE 50
debug "Starting...",13,10
debug 13,10
low led
Duty = 127 '50% duty
'************************************************* ***************
debug "started frequency loop",13,10
start:
debug 13,10
debug 13,10
low led
for freq=2000 to 4000 step 10
HPWM 1,duty,freq
debug dec freq,13,10
debug 13,10
pause 50
if sw1=1 then
while sw1=1
wend
goto play
endif
next
high led
pause 300
goto start
play:
debug "freq=",dec freq,13,10
end
[code\]
Any help would be appreciated
Bookmarks