查看: 1959|回复: 4

[已解决] 新手求助(已解决)

[复制链接]

该用户从未签到

2

主题

9

帖子

0

新手上路

Rank: 1

积分
17
最后登录
1970-1-1
发表于 2013-11-16 11:35:52 | 显示全部楼层 |阅读模式
 刚开始学单片机,有问题不明白
mc9s08dz60.h头文件中有一段
 
  byte Byte;
  struct {
    byte PTAD0       :1;                                       /* Port A Data Register Bit 0 */
    byte PTAD1       :1;                                       /* Port A Data Register Bit 1 */
    byte PTAD2       :1;                                       /* Port A Data Register Bit 2 */
    byte PTAD3       :1;                                       /* Port A Data Register Bit 3 */
    byte PTAD4       :1;                                       /* Port A Data Register Bit 4 */
    byte PTAD5       :1;                                       /* Port A Data Register Bit 5 */
    byte PTAD6       :1;                                       /* Port A Data Register Bit 6 */
    byte PTAD7       :1;                                       /* Port A Data Register Bit 7 */
  } Bits;
} PTADSTR;
extern volatile PTADSTR _PTAD @0x00000000; 
用于定义一个公用体来表示端口A,
求教一下红色的最后一句,看似一个会变语言的句子,放在头文件里,是什么意思,是否为一条指令,如果是指令,什么时候被调用的
另外,公用体里的以一个Byte成员作用是什么,谢谢
 
我知道答案 目前已有3人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-11-16 14:25:32 | 显示全部楼层

    RE:新手求助

    这个是定义PTADSTR寄存器的地址。这样定义是为了方便位操作,也就是你对PA0~PA7的IO口直接操作。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    9

    帖子

    0

    新手上路

    Rank: 1

    积分
    17
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-16 17:10:32 | 显示全部楼层

    RE:新手求助

    嗯 我看出来这个目的似乎为了给不能位寻址的porta寄存器进行位寻址用的
    但是 红色那句话不是一句预处理指令 也不是定义的全局变量
    有点像是一句类似汇编语言的命令
    我想知道
    为什么头文件里会有命令
    如果有命令 是什么时候执行这句命令 被谁调用的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    9

    帖子

    0

    新手上路

    Rank: 1

    积分
    17
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-16 17:13:06 | 显示全部楼层

    RE:新手求助

    或者说
    红色那句的意思是把变量_PTAD的内存地址变成0x0000h
    还是把一个随机分配的地址对应的变量_PTAD的值赋值给0x0000h地址所对应的内容
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

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

    RE:新手求助(正解)

    这是定义了一个PTADSTR类型的变量。他占用的是内存0x0000H,PTADSTR是一个结构体,里面的byte定义的是位。后面的:1表示的是占用1位。因为这个是8位的寄存器,所以,他只用到了8位。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-10-12 11:26 , Processed in 0.085627 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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