6170|3

47

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于RL78的IICA读20c04的程序那个大哥有,发一个出来。 [复制链接]

关于RL78的IICA读20c04的程序那个大哥有,发一个出来。

最新回复

https://bbs.eeworld.com.cn/thread-487467-1-1.html,这个帖子有完整的资料。  详情 回复 发表于 2016-4-9 23:22
点赞 关注

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 
这里边有一个RL78R5F104LE_EEPROM_CSI的例程不知道是不是你想要的。
http://www.pudn.com/downloads582 ... /detail2385873.html
39709599RL78_G14-Demo.rar (5 MB, 下载次数: 95)
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
本帖最后由 木瓜子 于 2015-11-24 18:53 编辑

#define "r_cg_macrodriver.h"

#pragma interrupt INTIICA0 IICA_IRQHandler


typedef enum
{
    WRITE_CMD_TYPE,
    READ_CMD_TYPE
}IICA_CMD_TYPE;

typedef enum
[
    IICA_IDLE_STATE,
    IICA_SEND_SLAVE_ADDR_STATE,
    IICA_SEND_DATA_ADDR_STATE,
    IICA_RECEIVE_DATA_STATE,
    IICA_STOP_STATE
}IICA_STATE;


typedef struct
{
    IICA_STATE  state;
    IICA_CMD_TYPE  cmdType;
    uint8_t  slaveAddr;
    uint8_t  dataAddr;
    uint8_t  *pbuffer;
    uint16_t  number;
   
}IICA_PARA;

volatile IICA_PARA IICA_Para;


void IICA_MasterComunicate(IICA_CMD_TYPE cmd, uint8_t slaveAddr, uint8_t dataAddr, uint8_t *pbuffer, uint16_t number)
{
    uint8_t wait = 0x1F;
   
    if (number == 0)
    {
        return;
    }
   
    IICA_Para.cmdType = cmd;
    IICA_Para.slaveAddr = slaveAddr;
    IICA_Para.dataAddr = dataAddr;
    IICA_Para.pbuffer = pbuffer;
    IICA_Para.number = number;
    IICA_Para.state = IICA_SEND_SLAVE_ADDR_STATE;
   
    STT0 = 1U;          /* set IICA0 start condition */
    IICAMK0 = 0U;       /* enable INTIIA0 interrupt */
    while (wait--);
    IICA0 = slaveAddr;  // the command is Write command for the slave address sending
}



static void __interrupt IICA_IRQHandler(void)
{
    if (IICA_Para.cmdType == WRITE_CMD_TYPE)
    {
        IICA_MasterWrite();
    }
    else
    {
        IICA_MasterRead();
    }
}



static void IICA_MasterRead(void)
{  
    uint8_t wait = 0x0F;
   
    if ((1 == TRC0) && (0 == ACKD0)))
    {
        /* error occur, add your own code here */
        IICA_Para.state = IICA_IDLE_STATE;   
    }
   
    switch(IICA_Para.state)
    {
        case IICA_SEND_SLAVE_ADDR_STATE:
            IICA0 = IICA_Para.dataAddr;
            IICA_Para.state = IICA_SEND_DATA_ADDR_STATE;
            break;
            
        case IICA_SEND_DATA_ADDR_STATE:
            STT0 = 1;             //generate the start condition again
            while (wait--);        //wait a short time for the generation of start condition
            IICA0 = IICA_Para.slaveAddr | 0x01;
            WTIM0 = 0;          //the master will genterate the interrupt at the falling edge of eighth clock
            ACKE0 = 1           //enable to send ACK
            IICA_Para.state = IICA_RECIEVE_DATA_STATE;
            break;
            
        case IICA_RECEIVE_DATA_STATE:
            *IICA_Para.pbuffer++ = IICA0;     
            if (--IICA_Para.number == 0)
            {
                ACKE0 = 0;      //the last data send the NACK. Note that the ackownlege signal is not sent untile the SCL line is released
                WTIM0 = 1;      //master will generate interrupt at the falling edge of the ninth clock pulse
                IICA_Para.state = IICA_STOP_STATE;
            }                           //at this time when receiving the last data, the ackownlege singal is not sent from master
            WREL0 = 1;          //release the SCL; Note that the master will pull down the clock after entering ingterrupt
            break;
            
        case IICA_STOP_STATE:
            SPT0 = 1;                                    IICA_Para.state = IICA_IDLE_STATE;
            break;
    }
}


只提供不完整的,


 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

4
 
https://bbs.eeworld.com.cn/thread-487467-1-1.html,这个帖子有完整的资料。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表