Thanks Robert :)
I'll keep also this mail which help me for my server coding (on a PC under 
Linux).

But my concern is using this PIC as a slave. Any code for that ?

Thanks

Laurent

PS: when it's working, I'll put some workable example code on my own site 
because I don't think I'm the only one with such question ;D

---
The misspelling master is on the Web.
   _________    100 % Dictionnary Free !
  /        /(
 /  Dico  / /   Pleins d'autres fautes sur
/________/ /    
(#######( /     http://destroyedlolo.homeunix.org
Quoi, des fautes d'orthographe! Pas possible ;-D.

A voir aussi : http://sillingy.clubphotos.fr , le site du
photo club de ... Sillingy.


--- En date de : Ven 9.7.10, Robert Bergfors <s...@rofa.penti.org> a écrit :

> De: Robert Bergfors <s...@rofa.penti.org>
> Objet: Re: [Sdcc-user] Example or tutorial for I2C usage with PIC
> À: sdcc-user@lists.sourceforge.net
> Date: Vendredi 9 juillet 2010, 14h19
> Quoting "Laurent FAILLIE" <l_fail...@yahoo.com>:
> 
> > Thanks Robert for your mail : I'll certainly use you
> code for my  
> > PICs haven't I2C hardware.
> >
> > Pic 16F88 have the needed hardware and I did notice
> those function  
> > in libio lib.
> > But my question is more having a full example, from 0
> to a workable  
> > tiny application :
> > - initialization to do,
> > - choregraphy
> > - checks
> >
> > Thanks
> >
> > Laurent
> 
> Hello Laurent,
> 
> It's a long long time since I programmed all of this, but
> the  
> I2C-specific initialation that I used (for running a
> PIC16F886 as I2C  
> master) looks like this, some of it may be unnecessary, but
> I added  
> them to be on the safe side. I now regret not commenting
> the code more  
> thorougly... I do not, however, have any experience with
> the 16F88,  
> but as I understand it, it should be almost the same as
> 16F88X  
> series...? At least the registers seem to have the same
> names.
> 
> {
>    TRISC3=1;
>    TRISC4=1;
>    SMP=1;
>    WCOL=0;
>    SSPOV=0;
>    SSPEN=1;
>    CKP=1;
>    SSPCON=SSPCON&0xf0;
>    SSPCON=SSPCON|0x08;
>    GCEN=0;
>    ACKSTAT=0;
>    ACKDT=0;
>    ACKEN=0;
>    RCEN=0;
>    PEN=0;
>    RSEN=0;
>    SEN=0;
>    SSPADD=15;
> }
> 
> 
> Basicly what I did was just read the PIC datasheet really
> carefylly  
> and set all the relevant registers I could find, I never
> used any  
> library functions for anything.
> For the 16F886:
> SSPSTAT contains the various flags to check.
> SSPCON contains the registers to set, and most stuff that
> follows  
> SSPCON in the above code are part of the SSPCON2 register.
> 
> 
> Then I just sit and wait for an external interrupt that
> makes the  
> program read out one byte from the slave, in this case a
> 1Hz square  
> wave output from the RTC DS1337 which triggers the PIC to
> read out the  
> clocktime from the RTC.
> 
> void RTCputc(unsigned char addr, unsigned char c_data)
> 
> {
>    unsigned char c;
>    c=(RTC_ADDR<<1)&0xfe;;  //
> recalculate the I2C address & write bit
>    I2Cstart();
>    I2Cwrite(c);      // send
> the RTC address to the bus
>    I2Cwrite(addr);   // send
> the RTC internal memory location
>    I2Cwrite(c_data); // send the data to
> that location
>    I2Cstop();
> }
> 
> 
> unsigned char RTCgetc(unsigned char addr)
> {
>    unsigned char c;
>    c=(RTC_ADDR<<1)&0xfe; //
> recalculate the I2C address & write bit
>    I2Cstart();
>    I2Cwrite(c);       
> // Send the RTC's I2C address
>    I2Cwrite(addr); 
>    // RTC internal memory location to be
> read
>    I2Crestart();
>    c=c|0x01;       
>    // swap the Read/write bit
>    I2Cwrite(c);       
> // resend the address
>    c=I2Cread(0);   
>    // read one byte, passing the ACK/NAK bit
>    I2Cstop();
>    return(c);
> }
> 
> I hope I answered the right question this time :o)
> If you want, I could send the entire project as a .tar.gz,
> it's a  
> school project and contains no secrets, only perhaps bad
> ideas :o)
> 
> Best Regards, Robert
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Sprint
> What will you do first with EVO, the first 4G phone?
> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
> 


      

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to