Run the program below -
Set the port to output
TOPP:
Toggle LED
PAUSE 1000
GOTO TOPP
If the LED stays on for one second and off for one second, then
you are running the frequency you have set in your DEFINE
For example:
IF have DEFINE OSC 4 -
and the above program turns the LED one second ON and one second OFF
Then you are running at 4MHz
If it is on for 200milliseconds at off for 200 milliseconds. Then you are running
at 20MHz.
Charles Linquist
I kinda thought that's what I had to do...just didn't believe it was that simple!
So I did that...even though I've 'told' the chip to run the external crystal and defined osc 4...I'm not blinking @ 200ms
Either the crystal isn't oscillating properly...or I should start flippin' burgers
BTW: The reason I'm trying to run this 12F683 at 20Mhz is to obtain readings from an accelerometer (aboard an RC aircraft) and control 3 servos all in a relatively smooth way.
In addition, I've bought XBEE 900 Mhz XSC transceivers and will be passing telemetry information from the aircraft to a ground station. I have more Q's about serial communications from the 12F683 to the XBEE...but that's for another thread. I first have to figure out what I don't know.
Cheers,
JOhn.
It does not look like you are setting the config correctly.
The thread that Joe and I pointed you to should have helped.
For now try going to the inc file for this chip in the PBP directory. Below is part of it.
If you are using PM for the assembler change
device pic12F683, intrc_osc_noclkout, wdt_on, mclr_on, protect_off
to
device pic12F683, hs_osc, wdt_on, mclr_on, protect_off
If you are using MPASM then change
__config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
to
__config _HS_OSC & _WDT_ON & _MCLRE_ON & _CP_OFF
Code:device pic12F683, intrc_osc_noclkout, wdt_on, mclr_on, protect_off XALL NOLIST else LIST LIST p = 12F683, r = dec, w = -302 INCLUDE "P12F683.INC" ; MPASM Header __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
Dave
Always wear safety glasses while programming.
Dave, thanks for your help, really appreciate it. I've been spending too many hours (very unproductive ones at that) trying to learn this thing called picbasic, and, as I'm sure you know, after you hit that frustration level...YOU JUST CAN'T GIVE UP! And, of course its down hill from there...Sleep is good, if you can get your mind off the problem.
Anyway,
Here's my Code:
[HTML]@__config _HS_OSC & _WDT_ON & _MCLRE_ON & _CP_OFF
DEFINE OSC 20
CMCON0 = 7 ' Analog comparators off
ANSEL = 0 ' Analog select set to digital, pg 69 data
ADCON0 = 0 ' A/D turned OFF, pg 68 of data
'***************************************
'Define Variables
'***************************************
'Set Variables
low 0
start:
toggle 0
pause 1000
goto start
end[/HTML]
When I change the DEFINE OSC between 4, 8, 20 it seems to work fine now...but I get compilation errors as follows:
[HTML]Executing: "C:\PBP\PBPW.EXE" -ampasmwin -oq -z -p12F683 "Blink 12f683 simple.bas"
PICBASIC PRO(TM) Compiler 2.50b, (c) 1998, 2008 microEngineering Labs, Inc.
All Rights Reserved.
Warning[205] E:\USERS\JDROOG\DOCUMENTS\MCS\BLINK 12F683 SIMPLE.ASM 82 : Found directive in column 1. (__config)
Error[118] E:\USERS\JDROOG\DOCUMENTS\MCS\BLINK 12F683 SIMPLE.ASM 82 : Overwriting previous address contents (2007)
Error[118] E:\USERS\JDROOG\DOCUMENTS\MCS\BLINK 12F683 SIMPLE.ASM 82 : Overwriting previous address contents (2007)
Loaded E:\Users\jdroog\Documents\MCS\Blink 12f683 simple.COD.
BUILD SUCCEEDED: Mon Mar 02 19:14:43 2009[/HTML]
What exactly does this mean??
John.
For the error go to the *.inc file in the PBP directory for your chip and comment out this line
__config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
with a ;
The warning is just a warning, you can add this near the top of you code
or put a space betweenCode:Asm ERRORLEVEL -205 Endasm
@ and _
in the config statement in you code.
This stuff is addictive![]()
Dave
Always wear safety glasses while programming.
Bookmarks