【经验】瑞萨RL78 MCU芯片工程代码使用指引之对单片机IO口进行位操作
瑞萨科技是世界十大半导体芯片供应商之一,在汽车领域的MCU市场份额更是排在最前列。近日笔者碰到刚接手瑞萨MCU的开发人员,提出一个比较有意思的问题,分享出来以帮助大家更快上手。
我们使用的是瑞萨R5F109GE的开发板,通过开发板来熟悉瑞萨的MCU资源是比较好的办法。这位朋友提出的问题是:R5F109GE使用瑞萨自有的CS+的编译器,但在编程中,无法对单片机IO口进行位操作。比如说做跑马灯实验,需要不断的改变某个IO口的输出信号,而编译器只识别整个IO口寄存器,而无法识别对其中的位操作,这样不利于编程开发。
以其中的IO口P51为例,正常我们希望的是编译器可以识别以下代码,方便理解:
P5.1=1;//P51口输出高电平
或P51=1;//P51口输出高电平
不过实际上,编译器是无法识别P5.1和P51。我们以前碰到这样的情况,可能需要自己来做下数据处理如下所示:
P5= P5|(1<<1);// P51口输出高电平
这样才能达到我们所要的P51口输出高电平效果。但是,这么长的赋值语句,如果在一个本身就比较长的代码中,很容易引起操作失误。
笔者仔细研究了下瑞萨的CS+ 的编译器,在编译器创建工程默认后的iodefine.h文件中,找到了瑞萨为我们提供的一个更好的解决办法。
如下代码所示:
typedef struct
{
unsigned char no0:1;
unsigned char no1:1;
unsigned char no2:1;
unsigned char no3:1;
unsigned char no4:1;
unsigned char no5:1;
unsigned char no6:1;
unsigned char no7:1;
} __bitf_T;
#define P5 (*(volatile __near unsigned char *)0xFF05)
#define P5_bit (*(volatile __near __bitf_T *)0xFF05)
在上面的代码中,CS+编译器的iodefine.h文件中定义了一个8bit的结构体__bitf_T(如果是16位,或者32位只需要往上叠加no个数即可),并定义了P5整个寄存器的地址,以及P5_bit这个__bitf_T型的结构体的地址,都指向PORT5的寄存器地址。此时,我们可以通过以下的简单操作即可实现PORT口的位操作。
P5_bit.no1=1;
编译器会创建P5_bit这个__bitf_T型的结构体,以方便我们调用。如果P51使用的比较频繁,觉得代码还比较长,我们可以在宏定义中添加:
#define P51 P5_bit.no1
这样就可以实现我们一开始所需求的代码:
P51=1; / P51口输出高电平
最后给大家整理下,据说高级工程师都会选择以下的写法:
#define P51 (((volatile __near __bitf_T *)0xFF05)->no1)
P51=1; / P51口输出高电平
程序的优劣性下一个章节会和大家一起具体分析下。
瑞萨的CS+编译器完全支持瑞萨汽车级16位MCU RL78系列和RH850系列汽车级32位MCU,支持代码生成器功能,内置乘除法调用精简指令。支持瑞萨E1等多个烧录调试工具。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由木木提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】瑞萨32位RH850系列MCU的调试下载指引
瑞萨车规级32位RH850系列MCU ,满足ISO26262 ASILA-ASILD各等级的功能安全需求,系统时钟达80M以上,支持浮点运算,多通道CAN通信等功能
设计经验 发布时间 : 2017-10-20
【经验】使用瑞萨CS+编译器查看RL78内部FLASH数据经验与方法介绍
瑞萨Renesas汽车级16位MCU RL78/F1x系列支持AEC-Q100认证,nA级别优异的低功耗特性,以及集成片上EEPROM等特性,集成CAN/LIN通讯模块,十分适用于汽车电子控制MCU的应用。瑞萨针对RL78系列芯片提供自主研发的CS+编译器来实现芯片编程与仿真。
设计经验 发布时间 : 2020-11-22
【经验】瑞萨RL78系列MCU中断嵌套开发经验
瑞萨高性价比汽车级16位MCU RL78/F1x系列,支持CAN总线与LIN总线,可用于汽车零部件主控BCM开发,受到车厂的公认好评。本文主要介绍瑞萨RL78/F13系列MCU R5F10BGGCLFB的中断嵌套模式配置方法。
设计经验 发布时间 : 2022-12-24
航顺芯片(HANGSHUN)32位MCU/存储/LCD驱动/电源管理产品选型指南
目录- 公司介绍 32位MCU 应用方案 存储 电源管理 LCD/LED液晶显示驱动
型号- HK32ASAFE010RBT6,HK6206XX系列,HK32F04AKBT6A,HA030系列,HK32F04AC6T6A,HK32F051RBT6,HK24C64,HK70XX,HK32ASAFE010GBU6,HK32E032R4T5,HK24C128,HK32F031C4T6,HK32L031K4U6H,HK32F103RET6,HK32U1009VDT6,HK32F072,HK32F0301MJ4M6,HK32L088R8T6H,HK32H3009VET6,HK32F030M,HK32F04AK8U6A,HK32F04AGBU6A,HK24C256,HK32F030系列,HK32F103VCT6,HK32L084RBT6H,HK32HA030C8T6,HK32AUT0103,HK32F072CBU6,HK358,HK32F030MF4U6,HK32F072C8T6A,HK32F030C6T6A,HK32F04AF8P6A,F0301M系列,HK32F031G4U6A,HK78XX,HK32SPIN030K6T6,HK32F031M,HK32F04ARBT6A,HK32F031K4T6A,U3009,HK32F04AK8U6,HK32L051K6T6H,HK32F04AFBP6A,HK32F031C4T6A,HK32F0301MD4P6,HK32F072CBT6,HK32F04AF6P6,HK32F031F6P6,HK32F072CBT6A,HK32ASAFE010,HK32L031K4T6H,HK32U1009VET6,HK32F0301MD4P6A,K32F030K6T6,AL03X系列,HK32F103VDT6,HK32F072R8T6,HK32ASPIN010RBT6,HK32ASPIN010GBU6,HK32F030C8T6,HK32L052K6T6,HK32F04AK8T6A,HK32L052K6U6,HK32L088C8T6H,HK25Q16,HK32F072C8U6A,HK32L083RBT6,HK32F39ARCT6,HK32F04AK8T6,HK32F04AC4T6,F030M系列,HK32L052K6U6H,HK32F103C8T6,HK32U3019RCT6,HK32ASPIN010,HK32F031K4U6A,HK32F103C8T6A,HK78LXX系列,HK32L051K6U6H,HK32L084CBT6,E032X系列,HK32F030MF4P6,HK32F39A,HK32ASAFE010KBU6,HK4054,U1XX9系列,HK32F04AR8T6A,HK32F042RBT6,HK3 2ASAF EO10 KBT6,E032X,HK32AUTO103CCT7,HK32F030R8T6A,HK32L0,HK32SPIN030F6P6,HK32F031C6T6,HK32F103RCT6,HK24C16,F04A,HK32F030,HK32L084CBT6H,HK32H3009VCT6,HK32F04ACBT6A,HK32F04AK6T6A,F103系列,HK32H3009RET6,HK32W030KEU6,HK32F0301MF4P6A,F030,F031,HK24C32,HK1117-XX系列,HK32F031F6P6A,HK32F04AF4P6A,HK32ASAFE010KBT6,HK32T088C8T6,HK73XX系列,HK393,HK32L063C8T6,F39A,HK32F030MF4U6A,HK32F031G4U6,HK4056,HK4057,HK32ASPIN010CBT6A,HK32F031K6U6A,HK6206XX,HK32ALG31X,HK32L088C8T6,HK32F04AK6U6,HK32F04AC8T6A,HK32F030MG6U6A,HK32ASPIN010KBU6A,HK32F04AR8T6,HK32F04AF4P6,HK32L088R8T6,HK32ASAFE,HK32F04AG8U6,HK32L051K6T6,HK32F072C8U6,HK32F103RDT6,HK32F030K6T6A,HK32F04AG8U6A,HK32F051,HK32F04AKBU6A,HK32H3009VDT6,HK32ASPIN010KBU6,HA030,HK32F04AK6T6,HK32F030C6T6,HK25Q128,HK32F04A,HK32F0301MF4U6,HK32L051K6U6,HK32HA030,HK24C512,HK78XXCV系列,HK32F072C8T6,U3009系列,HK32W020KEU6,HK32ASAFE010FBP6,HK75XX,HK32L083R8T6,HK32U1009,HK32F042,HK32F031G6U6A,HK32F030MJ4M6A,HK32L084C8T6,HK32ASPIN010KBT6,HK32AUTO103CET7,HK32F031C6T6A,HK32F042R8T6,HK32F042CBT6,HK32F031K4T6,HK32F030MG6T6A,HK32ASPIN010KBT6A,HK32HP103RET6,HK32F0301MF4P6,HK32AUTO103RCT7,HK32F103V8T6A,HK32F051C8U6,HK32HP103,HK1381,HK32HA030RBT6,HK32F051R6T6,HK78MXX系列,HK32F030K6T6,HK32L084RBT6,HK32L031K4T6,HK32F030MD4P6A,HK32H3009RCT6,AL03X,HK25Q64,HK32F103,HK32F39AVDT6,HK32L051C8T6,HK32F031K4U6,HK32F042CBU6,HK32L051C8T6H,HK32F051C8T6,I1K24C256,F0301M,HK32F103RBT6A,HK32F0301MJ4M6A,HK32ALG31G8U6,HK32ASPIN010GBU6A,HK32F030R8T6,HK32F031G6U6,HK1117-XX,HK32L031K4U6,F031系列,HK32U3019VDT6,HK32F030MD4P6,HK32F04AK4U6,HK32F04AC4T6A,HK32ASPIN010FBP6,HK32ASPIN010FBP6A,HK32T088,HK73XX,F04A系列,HK32F04AG6U6,HK32F103CBT6A,HK78XX系列,HK32F030F4P6A,HK32SPIN,HK32U1009RCT6,HK32F103RBT6,HK32ALG31H8U6,HK25Q80,HK32F04AG4U6A,F030M,HK32F04AK6U6A,HK32T088RBT6,HK32F04AK4T6,SPINM3,HK32F0301MF4U6A,HK32E032,HK32H3009RDT6,HK32F030C8T6A,SPINM0,HK32F39AVET6,HK4558,HK32F04AC8T6,HK24C08,HP103系列,HK24C02,HK78LXX,HK32L063C8T6H,HK32ALG3,HK24C04,HK78XXCV,HK32H3009,HK32F031K6T6A,HK32U3019VET6,F030系列,L08X系列,HK32F051CBU6,HK32HP103RCT6,HK32F1030C8T6,HK32F031K6T6,HK32L083R8T6H,HK32AUTO103RET7,HK32ASAFE010CBT6,HK32F051R8T6,HK32F042C8T6,HK32F072CBU6A,HK32F072RBT6A,HK32F0301M,HK32U1009RDT6,HK71XX系列,HK32SPIN030G6U6,HK32F04AG6U6A,HK32U3019,HK32F030MJ4M6,HK32F103VET6,HK32F04AK4U6A,HK32HP103CET6,HK32F051CBT6,HK32W0XX,HK32F031K6U6,L08X,HK32W030CEU6,K32F04AF8P6A,HK32F39ARDT6,HK32F042C8U6,HK32F0301MG6U6A,HK32F031F4P6,HK78MXX,HK32L052K6T6H,32SPIN030C8T6,HK32F103C816,HK32ALG31K8U6,HK25Q32,F39A系列,HK32U3019RDT6,HK32F030F4P6,HK32F04AG4U6,HK32F103R8T6A,HK32F4,HK32L083RBT6H,HK32F103VBT6A,HK71XX,HK324,HK32U1009RET6,HK32F072RBT6,F103,HK32W0,HK32F072R8T6A,HK25Q40,HK32U1009VCT6,HK32F04AF8P6,HK32F1,HK32F0,HK32F04AK4T6A,HK32F3,HK75XX系列,HK32F072V8T6,HK32ASPIN010RBT6A,HK32F103系列,HK32F39AVCT6,HK32F103CBT6,HK70XX系列,HK32F39ARET6,HK32F031F4P6A,HK32F04AF6P6A,HK32F04AC6T6,HK32F103R8T6,HK339,HK93CXX,HK32F030MF4P6A,HK32U3019VCT6,HK32F0301MG6T6A,HP103,U1XX9,HK32ASPIN010CBT6,HK1621B,HK32U3019RET6
【产品】8位、16位、32位MCU究竟该如何选择?
本文介绍8位、16位、32位MCU的差异特性。
新产品 发布时间 : 2016-04-02
【应用】工作电压范围为2.0-5.5V的32位MCU BAT32A239用于汽车电子腰托,最高工作频率64MHz
BAT32A239系列符合AEC-Q100汽车产品认证,-40~125℃工作范围;支持多种封装,为不同尺寸的汽车电子腰托提供可能性。此外,支持多种休眠模式,低功耗,能够有效帮助产品整体低功耗,延长产品使用寿命,高可靠性和多外设,提升腰托产品整体的高可靠性。
应用方案 发布时间 : 2022-12-23
极海半导体车规级32位MCU通过安全管理体系认证,符合汽车功能安全最高级别开发体系,亮相全球汽车电子交流会
2022年11月7-8日,“2022张江汽车半导体生态峰会暨全球汽车电子交流会”在上海张江科学会堂隆重举行。会议六大亮点之一的“全球汽车电子博览会”,展览范围包罗了整车、汽车零部件、汽车半导体等上下游各个细分领域。极海携多款车规级MCU产品亮相博览会。
原厂动态 发布时间 : 2022-11-10
【应用】瑞萨32位车规级MCU R7F7016493助力车载T-BOX设计,主频高达240MHz,支持大代码运行
在车载T-box中,主控芯片的选择是非常重要的一环,汽车电子常用的MCU需要高安全性,高性能,低功耗,处理相关数据并提供外设控制控制功能,本文介绍一款瑞萨的32位车规级MCU R7F7016493的应用优势。
应用方案 发布时间 : 2023-03-19
【技术】RH850系列32位MCU三种中断功能,你知道么?
瑞萨电子RH850系列32位MCU符合ISO26262的要求,满足汽车安全等级ASILB –ASILD等级的控制芯片,在全球汽车电子市场上得到广泛应用。
技术探讨 发布时间 : 2018-02-11
【经验】32位车规级MCU RH850 F1L出现异常的调试及启动配置说明
Renesas RH850 F1L作为32位车规级MCU受到许多车厂及Tier1喜欢,近期有Tier1客户在使用该MCU过程中出现无法正常启动的情况,并且是切换到铜线时才出现,感觉非常奇怪,本文就该MCU启动问题排查过程做如下介绍。
设计经验 发布时间 : 2023-03-16
【经验】瑞萨RL78系列汽车级16位MCU低功耗STOP模式如何唤醒?
本文以瑞萨汽车级16位MCU RL78系列,32PIN QFN小封装,96KB FLASH的车规级16位单片机 R5F10BBF为例,介绍如何配置和唤醒R5F10BBF芯片的低功耗STOP模式。
设计经验 发布时间 : 2019-05-02
【应用】瑞萨32位MCU RH850/F1K系列在高集成度的iBCM中应用
瑞萨汽车级MCU R7F7015573作为瑞萨32位芯片RH850/F1K,采用瑞萨G3KH核,集成功能安全模块ICUS(SHE功能安全),可以支持汽车功能安全等级ASIL B,176PIN多引脚,丰富的CAN总线资源,支持浮点运算,适用于汽车高集成化的iBCM控制模块
应用方案 发布时间 : 2019-01-06
【经验】瑞萨汽车级16位MCU RL78/F13内部集成temperature sensor的配置方法
瑞萨(Renesas)推出的高性价比汽车级16位MCU RL78/F1x系列,支持CAN总线与LIN总线,可用于汽车零部件主控BCM开发。本文主要介绍瑞萨RL78/F14系列内部集成的temperature sensor的配置方法。
设计经验 发布时间 : 2022-10-25
【应用】汽车级32位MCU RH850/F1KM-S4完美支持无感OTA升级功能
Renesas汽车级32位MCU RH850/F1KM-S4系列如R7F7016443,支持BGO,复位中断向量偏置,大容量FLASH的功能,可以符合无感OTA升级的要求。
应用方案 发布时间 : 2020-04-29
【经验】车规级RL78系列16位MCU如何读取指定ROM空间的数据?
瑞萨车规级16位RL78系列MCU ,集成CAN总线,十分适合应用于带CAN诊断的汽车零件产品项目,目前在全世界汽车各零配件厂商中广泛应用。以RL78系列R5F10BBF为例,十分适用于对封装要求小,且支持CAN总线的应用需求中。
设计经验 发布时间 : 2018-04-18
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可定制显示屏的尺寸范围0.96“~15.6”;工作温度范围:-30℃~80℃,分辨率:128*128~1920*1080;亮度:300~1200。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论