查看: 1859|回复: 6

[其他] 飞思卡尔寄存器操作和TI寄存器操作的一点不同

[复制链接]

该用户从未签到

7

主题

50

帖子

0

注册会员

Rank: 2

积分
123
最后登录
2016-7-8
发表于 2015-9-2 14:28:33 | 显示全部楼层 |阅读模式
对与TI的寄存器可以直接进行按位操作,如:        PMC_SPMSC1&= ~BIT0;//其中BIT0为宏定义的0x01;
而在使用过程中发现:飞卡的芯片如果直接对寄存器时行按位操作时,会出现不可预知的错误。大多数情况下其按位操作可以直接实现,但是有的时候虽然进行了按位操作,但是寄存器的值并没有进应的改变,如果它都不执行也罢,当寄存器的按位操作有的执行,有的不执行时,非常容易出现不可预知的错误。且不易在调试的过程中发现。想到的一个解决办法是先将寄存器的值赋值给变量,进行按位操作,完事再将变量值赋值给寄存器。如下例所示:


        REGISTER_TEMP = PMC_SPMSC1;
        REGISTER_TEMP &= ~BIT0;//Amos_Adolph:Bandgap Buffer Enable //bit0,1有待确定
        REGISTER_TEMP &= ~BIT1;//Amos_Adolph:Bandgap Buffer Drive Select
        REGISTER_TEMP &= ~BIT2;//Amos_Adolphow-Voltage Detect Enable
        REGISTER_TEMP &= ~BIT3;//Amos_Adolphow-Voltage Detect Stop Enable
        REGISTER_TEMP |= BIT4;//Amos_Adolphow-Voltage Detect Reset Enable
        REGISTER_TEMP &= ~BIT5;//Amos_Adolphow-Voltage Warning Interrupt Enable
        PMC_SPMSC1 = REGISTER_TEMP;

我知道答案 目前已有6人回答

评分

参与人数 1NXP金币 +10 收起 理由
小七 + 10 为啥有那么多表情?哈哈

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-2 15:06:55 | 显示全部楼层
    我怎么感觉这根本就不是什么按位操作。。。。
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2015-9-2 15:58:59 | 显示全部楼层
    c的(位)逻辑运算
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-9-2 17:07:11 | 显示全部楼层
    没有发现这个问题呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    50

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    2016-7-8
     楼主| 发表于 2015-9-4 06:45:08 | 显示全部楼层
    本帖最后由 freescale.datesheet.web 于 2015-9-4 06:47 编辑

    我再同时使用AD他PWM时,发现的,配了挺多寄存器,只有PWM某个寄存器的一位出了问题,用了两天才发现问题出在哪里
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    50

    帖子

    0

    注册会员

    Rank: 2

    积分
    123
    最后登录
    2016-7-8
     楼主| 发表于 2015-9-4 06:47:03 | 显示全部楼层
    JackieLaura 发表于 2015-9-2 15:06
    我怎么感觉这根本就不是什么按位操作。。。。

    水平有限,如若有表达不准的地方,烦请指正。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-4 08:42:07 | 显示全部楼层
    freescale.dates 发表于 2015-9-4 06:47
    水平有限,如若有表达不准的地方,烦请指正。

    我也是刚学FSLS,共同学习
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 19:02 , Processed in 0.103059 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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