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.

[参考译文] MSP430FR5969:随机数生成器示例

Guru**** 2536610 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/576232/msp430fr5969-random-number-generator-example

部件号:MSP430FR5969

我尝试使用此示例中的随机数生成器代码:
http://processors.wiki.ti.com/index.php/MSP430_FAQ#How_to_generate_random_number_with_MSP430_devices.3F 
此外,我还使用以下方法将ACLK设置为使用VLO:   
CSCTL2 =拉美_ VLOCLK | SESS__DCOCLK | SELM__DCOCLK;

当我运行此代码时,它在以下位置挂起:  
while (!(TA0CCTL1和CCIFG));
这可能是因为我使用 的是不同的MSP系列: MSP430FR59xx

我找到了这个额外的信息: https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/44.6531万

但我不确定要做什么改变才能使它发挥作用。
数据表第62页 http://www.ti.com/lit/ds/symlink/msp430fr5969.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如Dennis在您提到的另一篇E2E文章中所提到的那样,用于ACLK (内部)的CCI2B从用于FR5969的TA2运行,因此您应该初始化此计时器,而不是用于ACLK输入捕获的TA0。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我被这个表弄混淆了,它的名字是:TA0信号连接
    然后TA2是模块信号

    我用TA0CCTL2替换了TA0CCTL1,用TA0CCR2替换了TA0CCR1,现在似乎工作正常...

    我还更改了此行:
    TA0CTL =(TA0CTL和0xFCFFF)|((TA0CCR1和0x03)<< 8);
    进入:
    TA0CTL =(TA0CTL和0xFF3F)|((TA0CCR2和0x03)<< 6);

    因为它更改了时钟源而不是计时器除法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的错误,我再次只是根据丹尼斯的建议来提出我的建议。 使用CCR2是有意义的,因为它是连接到内部ACLK输入信号的模块块块。 无论如何,我很高兴听到您的示例发挥了作用。

    此致,
    Ryan