CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

18F toggling pin problem

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Sensor



Joined: 04 Nov 2004
Posts: 33

View user's profile Send private message Send e-mail

18F toggling pin problem
PostPosted: Thu Nov 16, 2006 10:19 am     Reply with quote

PIC: 18F6527
Voltage: 5V
Osc: 7.3728MHZ
Compiler: PCWH 3.236

I am having a problem with the 18F6527. All I am trying to do is set a pin high and then set the same pin low and I cannot do it. I had a design with a 16F and everything worked great... now I am try to reuse the same code on my 18F but nothing is working. So I've cut the code down to the following:
Code:


#include <18F6527.h>
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOIESO                   //Internal External Switch Over mode disabled
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOLPT1OSC                //Timer1 configured for higher power operation
#FUSES NOMCLR                     //Master Clear pin enabled
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES BBSIZ2K                  //2K words Boot Block size

#use delay(clock=7372800)



void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

   #use fast_io(C)
   set_tris_c(0x80);

   while(TRUE)
   {
      output_high(PIN_C1);
      delay_ms(1000);
      output_low(PIN_C1);
      delay_ms(1000);
   }
}



The Pin never goes high. Why? If I change the pin I want to toggle to a port_B pin, it works fine.
Ttelmah
Guest







PostPosted: Thu Nov 16, 2006 11:17 am     Reply with quote

Turn off CCP2.
This outputs on pin C1, and it's operation overrides the port settings.

Best Wishes
ckielstra



Joined: 18 Mar 2004
Posts: 3680
Location: The Netherlands

View user's profile Send private message

PostPosted: Thu Nov 16, 2006 11:27 am     Reply with quote

In the simulator your program is working fine, but only when I disabled the BBSIZ2K fuse.
Sensor



Joined: 04 Nov 2004
Posts: 33

View user's profile Send private message Send e-mail

PostPosted: Fri Nov 17, 2006 10:32 am     Reply with quote

I tried disabling the BBSIZ2K and it did not work.

I verified that only RC1 from portC is the problem.

Ttelmah, in the datasheet it says, by default, the CCP2MX configuration bit equals one, so ECCP2 is assigned to RC1. So if I clear the CCP2MX bit, then ECCP2 is multiplexed with RE7. So either way, if the bit the cleared or set, I will lose either RC1 or RE7 as a general purpose GPIO. Is that correct?

I am new to the 18F series, can you tell me how to clear the bit?
Ttelmah
Guest







PostPosted: Fri Nov 17, 2006 10:44 am     Reply with quote

Just turn the CCP off. You 'lose' the output bits, if the module is enabled. The fuse allows you to set 'which' bit is lost.
I'd normally expect the module to be 'off', but some modules on the PIC default to on, or are turned on by CCS, so I'd simply try disabling it, and see if the pin works (setup_ccp2(CCP_OFF)).

Best Wishes
FISH6942



Joined: 03 Feb 2006
Posts: 13
Location: Minnesota

View user's profile Send private message

PostPosted: Fri Nov 17, 2006 12:29 pm     Reply with quote

You may want to look at this topic: http://www.ccsinfo.com/forum/viewtopic.php?t=28710&highlight=
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Fri Nov 17, 2006 12:55 pm     Reply with quote

Here is the errata for the 18F6527:
http://ww1.microchip.com/downloads/en/DeviceDoc/80253b.pdf
It says:
Quote:

5. Module: ECCP
PIC18F6XXX device’s Configuration Word,
CONFIG3L, is not [implemented] and will switch
the ECCP2 output pin similar to the PIC18F8XXX
devices if the Processor mode does not select
Microcontroller mode.

Work around
In MPLAB ® IDE, program the PIC18F6XXX device
as its PIC18F8XXX equivalent and assign the
Processor mode bits (PM<1:0>) to ‘11’ for
Microcontroller mode.

I'm not sure how to interpret this. It sounds like they want you
to set the PIC type to 18F8527 and manually set the two lowest
bits in Config3L to 11, by using the Configure Menu in MPLAB.

If you try this in MPLAB, it will give you a warning message when
you tell ICD2 to "connect" to your PIC. But, it will still "connect" and
it will apparently go ahead and program. I tested this with an 18F452.

Here are the Config fuses for your program, when compiled with PCH
vs. 3.236. This is from the .LST file. The bottom two bits in Config3L
are already set to 11. So it's possible that all you need to do is to
select "18F8527" in MPLAB, in the Configure/Select Device menu,
before you do the programming.
Quote:
Configuration Fuses:
Word 1: 0200 HS NOIESO NOFCMEN RESERVED
Word 2: 1E19 NOBROWNOUT NOWDT BORV25 NOPUT WDT32768
Word 3: 01F3 CCP2C1 NOLPT1OSC NOMCLR RESERVED
Word 4: 0091 STVREN NODEBUG NOLVP NOXINST BBSIZ2K
Word 5: C0FF NOPROTECT NOCPD NOCPB
Word 6: E0FF NOWRT NOWRTD NOWRTC NOWRTB
Word 7: 40FF NOEBTRB NOEBTR
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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