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 CCS Technical Support

12f683 problem

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



Joined: 08 Apr 2005
Posts: 8

View user's profile Send private message

12f683 problem
PostPosted: Thu May 26, 2005 3:22 pm     Reply with quote

Hi, i am using the pic 12f683, ccs 3.190 and winpic800. I can read, verify and erase the microcontroller, but when i try to programme it gives me an error in direc 0x0000.
My code is:
#include <12F683.h>
#use delay(clock=8000000)
#fuses NOWDT,INTRC_IO, NOCPD, NOPROTECT, MCLR, NOPUT, NOBROWNOUT, IESO, NOFCMEN

#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8)
#byte OSCCON = 0x8F

long rise;
#int_RA
RA3_isr()
{
rise = get_timer1();
set_timer1(0);

}


void main()
{

set_tris_a(0b001010);
OSCCON = 0x71; // Setup for 8 MHz with internal oscillator (*)
//setup_oscillator(OSC_8MHZ); // select 8MHz internal clock(*)
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
enable_interrupts(INT_RA3);
enable_interrupts(GLOBAL);
while (1)
{
delay_ms(2000);
printf("%lu\n\r",rise);
rise=0;
}
}
(*) I have proved both options.


Any idea??
thanks. greetings
Fabricio



Joined: 08 Apr 2005
Posts: 8

View user's profile Send private message

PostPosted: Mon May 30, 2005 8:18 am     Reply with quote

problem solved, it was an error of configuration of the winpic
my problem now is that I set:
#use rs232 (baud=9600, parity=N, xmit=PIN_A0, rcv=PIN_A1, bits=8, restart_wdt)
but in the hyperterminal, the correct configuration is
4800.
Is it a problem of the clock??
ckielstra



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

View user's profile Send private message

PostPosted: Mon May 30, 2005 8:38 am     Reply with quote

Quote:
#use rs232 (baud=9600, parity=N, xmit=PIN_A0, rcv=PIN_A1, bits=8, restart_wdt)
but in the hyperterminal, the correct configuration is
4800.
Is it a problem of the clock??
I guess your clock is running at 4MHz and not at 8MHz. You still have OSCCON = 0x71 in your code? This should be the correct value for an 8MHz clock.

Or there is a bug in the CCS compiler (this is a relative new chip)....
Fabricio



Joined: 08 Apr 2005
Posts: 8

View user's profile Send private message

PostPosted: Wed Jun 01, 2005 10:46 am     Reply with quote

new problem.
I used the restart_cause() funtion and it give me: NORMAL_POWER_UP 24.

My output is:
START
Restart=24
START
Restart=24
START
Restart=24
START
Restart=24
(reset continually) but when i put an signal in GP2(CCP1 in), the interruption is executed and prints 'XXXXXXXX......
Where is my error?
my code is:

#include <12F683.h>
#device adc=8
#use delay(clock=4000000)
#fuses WDT,INTRC_IO, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT, NOIESO, NOFCMEN
#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8,restart_wdt,errors)
#ROM 0x7FF={0x3400}

long rise;
//--------------------------------
#int_CCP1
CCP1_isr()
{
putc('X');
}

//---------------------------------
void Constructor (void);

void main()
{
long aux;
restart_wdt();
aux=restart_cause();
printf("Restart=%lu\n\r",aux);
printf("START\n\r");
Constructor ();

while (1)
{
restart_wdt();
printf("do something\r");
delay_ms(2000);
//rise=0;
}
}
//-----------------------------------------------
void Constructor (void)
{
restart_wdt();
set_tris_a(0b001110);
#ASM
movlw 0x8f// OSCCON
movwf 0x04
movlw 0b1100101// 4M, intternal clock, stable
movwf 0x00

movlw 0x90// OSCTUNE – OSCILLATOR TUNING
movwf 0x04
movlw 0b00000//
movwf 0x00

movlw 0x81// OPTION REG
movwf 0x04
movlw 0b11001000 // pull up dis,prescaler a wdt
movwf 0x00

movlw 0x8C// PIE1 periph interrup enable
movwf 0x04
movlw 0b00100000 // CCP1 enable
movwf 0x00

movlw 0x15//CCP1CON CCP control reg
movwf 0x04
movlw 0b00000101
movwf 0x00

movlw 0x10//T1CON
movwf 0x04
movlw 0b00000001
movwf 0x00


movlw 0x2007 // config
movwf 0x04
movlw 0b11000011011100 //
movwf 0x00

#ENDASM

setup_adc_ports(0);
setup_adc(ADC_OFF);
//setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
//setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
//setup_ccp1(CCP_CAPTURE_RE);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
}
Fabricio



Joined: 08 Apr 2005
Posts: 8

View user's profile Send private message

PostPosted: Wed Jun 01, 2005 11:18 am     Reply with quote

sorry, i forget to kick on the wdt when I use delay_ms, now it is working correctly. the correct instruction is:
#use delay (clock=4000000, restart_wdt)
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Wed Jun 01, 2005 11:22 am     Reply with quote

Do you believe that this code works ?
Quote:
movlw 0x2007 // config
movwf 0x04
movlw 0b11000011011100 //
movwf 0x00

What is the size of the W register ?
What does the 12F683 data sheet say (in Section 12.1) about ROM address 0x2007 ?
Fabricio



Joined: 08 Apr 2005
Posts: 8

View user's profile Send private message

PostPosted: Wed Jun 01, 2005 1:16 pm     Reply with quote

the compiler does not generate error, nevertheless, now I am not using this piece of code.
The data sheet recommends to read “PIC12F6XX/16F6XX Memory Program-ming Specification” (DS41204). I have not read this yet.
For what I understand, only it is possible to have access to this direction during the programming.
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Wed Jun 01, 2005 1:21 pm     Reply with quote

The data sheet says this:
Quote:
Note: Address 2007h is beyond the user
program memory space. It belongs to the
special configuration memory space
(2000h-3FFFh), which can be accessed
only during programming
. See
�PIC12F6XX/16F6XX Memory Program-ming
Specification� (DS41204) for more
information.
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