This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430G2553:Launchpad 上的位 I/O 时序- XORing 不同的位需要不同的时间

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430G2553

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/622489/msp430g2553-bit-i-o-timing-on-a-launchpad---xoring-different-bits-take-different-times

器件型号:MSP430G2553

我在曼彻斯特 UNH 教授一门有关使用 Launchpad (MSP430G2553)进行连接的实验课程。 当然、第一个练习之一是让 LED 闪烁。 代码本质上将 P1.0设置为输出、然后进入循环、在循环中 XOR #BIT0、&P1OUT 更改状态、然后将寄存器设置为一个数字并递减/循环、直到它达到0 (作为延迟)并无限期地执行所有这些操作。 指示灯闪烁。 我让他们在示波器上测量它、估算指令时间以及猜测您可以在没有延迟的情况下切换 LED 的速度。

然后、它们会消除延迟、因此代码基本上是:

环路

       XOR  #BIT0、&P1OUT

JMP 环路

这会使红色 LED 闪烁、每11.5微秒左右循环一次。 然后、一个实验组将代码更改为使用#BIT6使绿色 LED 闪烁。 循环中的两条指令相同、组测量值为12.6 μ s。 他们想知道、当您切换位6而不是位0时、相同的两条指令会花费更长的时间。 我不知道-有人有什么想法吗?

提前感谢您的任何建议!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一种形式(BIT0)使用常数发生器生成0x01、而第二种形式(BIT6)将0x40内联。 在后一种情况下、额外获取会花费额外的时钟。

    119 .dwpsn 文件"../main.c"、行22、列6、is_stmt、ISA 0
    120 000016 E3D2 XOR.B #1、&P1OUT+0;[]|22|
        000018 0000!
    121 .dwpsn 文件"../main.c"、行23、列6、is_stmt、ISA 0
    122 00001a E0F2 XOR.B #64、&P1OUT+0;[]|23|
        00001c 0040
       00001e 0000!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不是那么迷人-谢谢! 我必须在常数发生器上读取更多内容。 我已经在项目上使用芯片几年了、以前从未注意到过这一点。

    非常棒。

    霍华德