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

I2C in slace mode doesn't seem to set SSPCON correctly?

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







I2C in slace mode doesn't seem to set SSPCON correctly?
PostPosted: Thu May 29, 2003 3:07 am     Reply with quote

No matter how I try I can’t get I2C to work properly with the CCS #use

I want:
#use i2c(Slave,sda=PIN_C4,scl=PIN_C3,force_hw,address=0x1F)

This line sets the address correctly, but leaves SSPCON = 0x00, when I want it to be 0x36 (which sets slave mode)

If I manually do
#byte SSPCON = 0x14
SSPCON = 0x36

all works well!!!!! But I don’t believe I should have to do this myself?
I am using 3.158 and a PIC16F873.

Any ideas?

Will
___________________________
This message was ported from CCS's old forum
Original Post ID: 144514836
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

Re: I2C in slace mode doesn't seem to set SSPCON correctly?
PostPosted: Thu May 29, 2003 10:42 am     Reply with quote

:=This line sets the address correctly, but leaves SSPCON = 0x00, when I want it to be 0x36 (which sets slave mode)
:=I am using 3.158 and a PIC16F873.
------------------------------------------------------------

I made the following test program and compiled it with
PCM vs. 3.158. It puts 0x36 into register 0x14.
See the .LST file below:

<PRE>
#include "c:\Program Files\Picc\Devices\16F873.H"
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 8000000)
#use i2c(Slave,sda=PIN_C4,scl=PIN_C3,force_hw,address=0x1F)
<BR>
void main(void)
{
char c;
<BR>
c = i2c_read();
<BR>
while(1);
}

0000 00252 .................... void main(void)
0004 0184 00253 CLRF 04
0005 301F 00254 MOVLW 1F
0006 0583 00255 ANDWF 03,F
0007 3006 00256 MOVLW 06
0008 1683 00257 BSF 03.5
0009 009F 00258 MOVWF 1F
0016 301F 00259 MOVLW 1F
0017 0093 00260 MOVWF 13

// Right here, it's moving 0x36 into register 0x14
0018 3036 00261 MOVLW 36
0019 1283 00262 BCF 03.5
001A 0094 00263 MOVWF 14
0000 00264 .................... {
0000 00265 .................... char c;
0000 00266 ....................
0000 00267 .................... c = i2c_read();
001B 1683 00268 BSF 03.5
001C 1814 00269 BTFSC 14.0
001D 2820 00270 GOTO 020
001E 1283 00271 BCF 03.5
001F 281B 00272 GOTO 01B
0020 1283 00273 BCF 03.5
0021 0813 00274 MOVF 13,W
0022 00A6 00275 MOVWF 26
0000 00276 ....................
0000 00277 ....................
0000 00278 .................... while(1);
0023 2823 00279 GOTO 023
0000 00280 .................... }
</PRE>

___________________________
This message was ported from CCS's old forum
Original Post ID: 144514853
Will Reeve
Guest







Re: I2C in slace mode doesn't seem to set SSPCON correctly?
PostPosted: Mon Jun 02, 2003 3:55 am     Reply with quote

Hi,
Indeed my compiled code seems to do the same! Somewhere after that it is set to 0x00 as I have to manual set it to 0x36 in my init_hardware procedure and all works from then on! I will investigate. Thanks for you help.

Will
___________________________
This message was ported from CCS's old forum
Original Post ID: 144514946
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

Re: I2C in slace mode doesn't seem to set SSPCON correctly?
PostPosted: Mon Jun 02, 2003 12:33 pm     Reply with quote

:=Hi,
:=Indeed my compiled code seems to do the same! Somewhere after that it is set to 0x00 as I have to manual set it to 0x36 in my init_hardware procedure and all works from then on! I will investigate. Thanks for you help.
---------------------------------------------------------

Look for a "setup_spi()" statement. This CCS function does
write to SSPCON.
___________________________
This message was ported from CCS's old forum
Original Post ID: 144514970
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