查看: 5813|回复: 17

[已解决] KL05 例程中是怎么操作GPIO的(已解决)

[复制链接]

该用户从未签到

3

主题

28

帖子

0

新手上路

Rank: 1

积分
39
最后登录
1970-1-1
发表于 2013-11-4 10:27:34 | 显示全部楼层 |阅读模式
刚接触飞思卡尔的单片机 请前辈多指点!谢谢
#define PCR(PTO,BIT)  PORT##PTO##_PCR##BIT
#define PDDR(PTO)     GPIO##PTO##_PDDR
#define PSOR(PORT)    GPIO##PORT##_PSOR
#define PCOR(PORT)    GPIO##PORT##_PCOR
#define PTOR(PORT)    GPIO##PORT##_PTOR
#define PDOR(PORT)    GPIO##PORT##_PDOR
#define PDIR(PORT)    GPIO##PORT##_PDIR
 
#define  PCR_OUTPUT_CONFIG  (PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK ) //Pin configured as GPIO
#define  PCR_INPUT_CONFIG   (PORT_PCR_MUX(1) | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK) //Pin configured as GPIO Input with pull up enable


#ifdef  LED1_PORT
#define LED1
#define LED1_PCR_OUTPUT(LED1_PORT,LED1_BIT)  PCR(LED1_PORT,LED1_BIT)
#define LED1_DDR_OUTPUT(LED1_PORT,LED1_BIT)  PDDR(LED1_PORT) |= (1
我知道答案 目前已有17人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-4 11:04:42 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    请问你看的是E:\……\KL05-SC\klxx-sc-baremetal\build\cw\LED_Blink程序吗?
    主程序中调用LED1_TOGGLE;其实就是调用LED1_PTOR(LED1_PORT,LED1_BIT);

    再跟踪LED1_PTOR你可以看到PTOR(LED1_PORT) |= (1
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    28

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-4 14:05:59 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    <div style="border-top: #ccc 1px dashed; border-right: #ccc 1px dashed; border-bottom: #ccc 1px dashed; padding-bottom: 5px; padding-top: 5px; padding-left: 5px; border-left: #ccc 1px dashed; padding-right: 5px">回复第 2 楼 于2013-11-04 11:04:42发表:
    请问你看的是E:\……\KL05-SC\klxx-sc-baremetal\build\cw\LED_Blink程序吗?
    主程序中调用LED1_TOGGLE;其实就是调用LED1_PTOR(LED1_PORT,LED1_BIT);

    再跟踪LED1_PTOR你可以看到PTOR(LED1_PORT) |= (1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-11-4 15:39:20 | 显示全部楼层

    RE:KL05 例程中是怎么操作GPIO的

    ##是连接符。加入PORT=1;
    PTOR(1)的结果就是:GPIO1_PTOR
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    28

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-4 16:21:48 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    回复第 4 楼 于2013-11-04 15:39:20发表:
    ##是连接符。加入PORT=1;
    PTOR(1)的结果就是:GPIO1_PTOR 

    #define PTOR(PORT)    GPIO##PORT##_PTOR
    这个等效什么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    28

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-4 16:42:48 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    回复第 4 楼 于2013-11-04 15:39:20发表:
    ##是连接符。加入PORT=1;
    PTOR(1)的结果就是:GPIO1_PTOR 

    #define LED1_PORT   B         // REd LED
    #define LED1_BIT       8
    #define PTOR(PORT)    GPIO##PORT##_PTOR

    #define LED1_PTOR(LED1_PORT,LED1_BIT)        PTOR(LED1_PORT) |= (1
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-4 17:13:32 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    <div style="border-bottom: #ccc 1px dashed; border-left: #ccc 1px dashed; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top: #ccc 1px dashed; border-right: #ccc 1px dashed; padding-top: 5px">回复第 6 楼 于2013-11-04 16:42:48发表:
    回复第 4 楼 于2013-11-04 15:39:20发表:
    ##是连接符。加入PORT=1;
    PTOR(1)的结果就是:GPIO1_PTOR 

    #define LED1_PORT   B         // REd LED
    #define LED1_BIT       8
    #define PTOR(PORT)    GPIO##PORT##_PTOR

    #define LED1_PTOR(LED1_PORT,LED1_BIT)        PTOR(LED1_PORT) |= (1
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    28

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-4 20:03:28 | 显示全部楼层

    RE:KL05 例程中是怎么操作GPIO的

    这样子 程序执行效率不会 打折吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-5 09:15:41 | 显示全部楼层

    回复:KL05 例程中是怎么操作GPIO的

    回复第 8 楼 于2013-11-04 20:03:28发表:
    这样子 程序执行效率不会 打折吧 

    这个应该不会,如果不放心其实可以在代码中写上两句,一句用宏操作的翻转、一句直接操作寄存器的翻转。
    通过反汇编查看下编译器将这两句话转换成的汇编语言是否一致。
    汇编语言的执行周期就可查了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-11-5 09:26:53 | 显示全部楼层

    RE:KL05 例程中是怎么操作GPIO的

    不会的。这个就是定义,为了方便操作寄存器。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 14:24 , Processed in 0.115579 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表