|
|
View previous topic :: View next topic |
Author |
Message |
wakaka
Joined: 11 Sep 2006 Posts: 27
|
16F767 test |
Posted: Tue Oct 17, 2006 8:01 am |
|
|
Code: | #include <16F767.h>
#use delay (clock=20000000)
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,MCLR,NODEBUG,EC_IO
#byte portb=6
void main()
{
set_tris_b(1);
while(1){
Portb=0;
delay_ms(1000);
Portb=255;
delay_ms(1000);
}
} |
Hi all, I'm trying a simple program on the PIC16F767, but it doesn't seem working.
THe compiler I'm using is CCS PCM C Compiler, Version 3.181 )from the LST file)
the hex code is below...
:1000000000308A00172800002230840000080319FD
:1000100016280630F800F701F70B0C28F80B0B2810
:100020007B30F700F70B1228800B0928003484017D
:100030001F3083050F3083169F00073083129F0007
:10004000003083168600831286010430A100FA3046
:10005000A2000420A10B2728FF3086000430A10055
:10006000FA30A2000420A10B302883162328630055
:02400E00AB3FC6
:00000001FF
;PIC16F767
Is there any problem??how to fix it?? |
|
|
wakaka
Joined: 11 Sep 2006 Posts: 27
|
|
Posted: Tue Oct 17, 2006 8:11 am |
|
|
just ignore me....found the problem
set_tris_b(0); |
|
|
Neckruin
Joined: 17 Jan 2006 Posts: 66
|
|
Posted: Tue Oct 17, 2006 8:15 am |
|
|
I was just going to say that ... it's true |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Oct 17, 2006 12:31 pm |
|
|
Quote: | #include <16F767.h>
#use delay (clock=20000000)
#fuses HS,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,MCLR,NODEBUG,EC_IO |
You have two oscillator fuses. The compiler will use the last one
in the line. The HS fuse will be ignored.
Here are the config bits created by your #fuses statement.
From the .LST file:
Quote: |
Configuration Fuses:
Word 1: 3FAB EC_IO NOWDT NOPUT NOPROTECT NOBROWNOUT BORV20 MCLR CCP2C1 NODEBUG
Word 2: 3FFF FCMEN IESO BORSEN |
You should only have one oscillator fuse. |
|
|
wakaka
Joined: 11 Sep 2006 Posts: 27
|
|
Posted: Tue Oct 17, 2006 11:56 pm |
|
|
really?? i thought for PIC which has internal clock, need to define to use external clock (EC_IO), then need to define the clock speed (XT, HS)
Meaning if using external, just define XT or HS enuf??
if i only define EC_IO, and i use 4Mhz, 12Mhz, 20Mhz crystal won't matter is it? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Wed Oct 18, 2006 1:01 am |
|
|
Quote: |
I thought for PIC which has internal clock, need to define to use external
clock (EC_IO), then need to define the clock speed (XT, HS). |
To use the internal RC oscillator, use the INTRC_IO fuse setting.
Put the #use delay() statement on the next line after the #fuses
statement. Then the compiler will automatically put in code to setup
the internal oscillator to run at the specified frequency.
Code: |
#include <16F767.h>
#fuses INTRC_IO, NOWDT, BROWNOUT, BORV42, PUT
#use delay(clock=4000000)
|
The internal RC oscillator only runs at certain frequencies, as specified
in the 16F767 data sheet. These are 8 MHz, 4 MHz, 2 MHz, etc.
See the data sheet for the complete list.
Quote: |
If i only define EC_IO, and i use 4Mhz, 12Mhz, 20Mhz crystal won't matter is it? |
EC_IO is used for an external oscillator. If you have oscillators in
each of those three frequencies, then yes, you can use all of them
with the same EC_IO fuse setting. Note that this is for an oscillator,
not a crystal. See the photos below.
Here is a photo of a crystal.
http://rocky.digikey.com/WebLib/ECS/Web%20Photos/HC-49US.jpg
Here is a photo of an oscillator.
http://rocky.digikey.com/WebLib/ECS/Web%20Photos/ECS-TTL%20CLOCK%20OSCIL.jpg
EC_IO is used with the oscillator.
XT or HS are used with the type of crystal shown in the photo. |
|
|
wakaka
Joined: 11 Sep 2006 Posts: 27
|
|
Posted: Wed Oct 18, 2006 5:54 am |
|
|
oh ya, thanks PCM, i thought crystal and oscillator is the same.....
But actually whats the difference between that 2??
What's the effect using a crystal and a oscillator? |
|
|
Ttelmah Guest
|
|
Posted: Wed Oct 18, 2006 6:36 am |
|
|
An 'oscillator', is something that oscillates!. A crystal, is a component, that exhibits a narrow 'bandpass' response, which can be used to tune an oscillator to a relatively accurate frequency. The PIC itself, contains an inverting amplifier, which if attached to a suitable network, giving phase shift, will oscillate. You can use a RC network, RL network, ceramic resonator, or a crystal, to make this oscillate. A crystal "on it's own", won't oscillate, but connected with this amplifier, then forms a complete oscillator. Alternatively, you can use an 'oscillator module'. These comprise a crystal, suitable amplifier, and usually an output buffer, all assembled into a case, so if you attach power, you get a waveform out.
Now the 'LP', 'XT, and 'HS' modes for the PIC clock input, tell it to use the inverting amplifier, and set the gain for this amplifier (more gain for the 'HS' mode, and less for 'LP'). This assumes an external feedback network is going to be attached to make this oscillate. Both the input, and output connections to the amplifier are needed.
EC, means that you are going to use an external clock oscillator module. Set like this, the internal amplifier is disabled, and instead a logic output from the internal divider (clock/4), is connected to the output pin.
EC_IO, means again to use the external module, but with no output from the clock.
H4, means use the HS oscillator, but then add a *4 PLL after the oscillator (only supported in latter chips), before feeding the signal on to the internal circuitry.
RC, means configure the amplifier differently, to use a single external resistor/capacitor as an oscillator (using the resistor/capacitor as a charge nework, between two voltages, with an added FET to discharge the network, and no feedback round the amplifier).
INTRC, means to form an oscillator _inside_ the chip, using the amplifier, as in 'RC', and a resistor/capacitor, formed inside the semiconductor.
Both of these give the clock/4 output.
RC_IO, and INTRC_IO, use the same charge network, and don't give the clock/4 output, leaving the output pin available for other use.
Not all modes are available in all chips, and some have yet more complex PLL/divider options...
Best Wishes |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|