• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 有沒有人使用過I2C Slave 功能
#4
新會員
新會員


查看用戶資訊
謝謝您提供的範例,目前已經可以正常工作了,謝謝您!

發表於: 2007/2/8 10:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有沒有人使用過I2C Slave 功能
#3
版主
版主


查看用戶資訊
感謝 mon0452 提供的 Solution , Microchip 也有一個用 PIC16F872 寫成的 I2C Slave 的範例供大家參考一下:

http://www.microchip.com/stellent/idc ... eId=1824&appnote=en011798

發表於: 2007/2/8 10:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有沒有人使用過I2C Slave 功能
#2
中級會員
中級會員


查看用戶資訊
我是用16f877a, 應該都差不多, 參考一下吧!
//*********************************************************
// I2C slave
//*********************************************************
//---------------------------------------------------------------------
void i2c_slave_set()    // set IIC in slave 7bit
{
    
TRISC3 1;    // portc.3 set input mode
    
TRISC4 1;    // portc.4 set input mode

//--SPCON set 0x36
    
WCOL 0;
    
SSPOV 0;
    
SSPEN 1;    // 致能portc.3 portc.4 為IIC通訊輸出入腳
    
CKP 1;
    
SSPM3 0;    // select IIC slave mode, 7bit address
    
SSPM2 1;    // 選擇IIC slave模式, 位址為7bit
    
SSPM1 1;    // 選擇IIC slave模式, 位址為7bit
    
SSPM0 0;    // 選擇IIC slave模式, 位址為7bit

    
SSPADD i2c_slave_id;    // 設定IIC slave ID,

    
SSPIE 1;    // IIC 中斷致能
    
SSPIF 0;    // 清除IIC中斷旗標
}


//---------------------------------------------------------------------
void i2c_slave_act()
{
    
u8 temp,temp_dat,temp1;
    
//u8 temp_adr, temp1_adr;

//    中斷服務程式中, 如判斷到SSPIF旗標為1時, 便會來這裡執行動作
    
if(STAT_BF == 1)                    // BF=1, 代表SSPBUF內有資料, 取出後就會自動為0
    
{
        if(
STAT_DA == 0)                // 所收到封包(byte)是為address or data
        
{                            // stat_da=0(收到的是位址)
            
temp SSPBUF;            // 將收到的address取出來, 放入temp
            
SSPIF 0;
        }
        else                            
// stat_da=1(收到的是資料)
        
{
            if(
i2c_rw_flag == 0)
            {
                
temp SSPBUF;        // 將收到的資料(pic為slave,收到為要回傳資料位址)取出來, 放入temp
                
temp1 pic_eeprom_r(temp);
                
SSPIF 0;            // 清除IIC中斷旗標
                
i2c_rw_flag 1;
            }
            else
            {
                
temp_dat SSPBUF
                    
EEADR temp;            // 寫入的位址
                    
EEDATA temp_dat;    // 寫入的資料
                
pic_eeprom_w();
                
i2c_rw_flag 0;
            }
        }
    }
    else                        
// BF=0, 代表SSPBUF內沒有資料
    
{
        
SSPBUF temp1;        // 要傳送的資料放入SSPBUF
        
CKP 1;                // 發出 stop 訊號
        
SSPIF 0;            // 重置中斷旗標
        
i2c_rw_flag 0;
    }

}
//*********************************************************
// I2C slave
//*********************************************************


//*********************************************************
// ISR
//*********************************************************
void interrupt isr()
{
    if(
SSPIF == 1)        // i2c中斷旗標
    
{
        
i2c_slave_act();
        
SSPIF 0;
    }

}
//*********************************************************
// ISR
//*********************************************************

發表於: 2007/2/7 15:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


有沒有人使用過I2C Slave 功能
#1
新會員
新會員


查看用戶資訊
小弟目前剛好遇到需要連結兩顆MCU,兩顆都是PIC18系列的,重點在於slave沒有找到C的範例程式,如果有人使用過能否提供相關範例!感激不盡謝謝!

發表於: 2007/2/6 20:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------