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.

[参考译文] MSP430F2618:中断

Guru**** 2546020 points
Other Parts Discussed in Thread: MSP430F2618, MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/589767/msp430f2618-interrupts

器件型号:MSP430F2618
主题中讨论的其他器件: MSP430G2553

您好!

我正在使用 YF‑S201 水流量传感器来测量水的流量并将数据读取到  msp430f2618 板中。 我参考了为同一传感器为 msp430g2553代码编写的代码、我在这里附加了该代码。 有人能不能建议进行更改、使其与 msp430f2618配合使用。

 

#include  

void  main (void){

      WDTCTL = WDTPW + WDTHOLD;             //停止 看门狗 计时器

      TA0CCR0 = 0xFFFF;                             //计数限制(16位)

      P1SEL |= BIT0;                           //使用 P1.0作为 TimerA 输入

      P1SEL2 &=~BIT0;                           //

      P1DIR &=~BIT0;                            //

      P1OUT &=~BIT0;                            //启用下拉电阻以减少杂散计数

      P1REN |= BIT0;

      TA0CCTL0 = 0x10;                             //启用计数器中断、位4=1

      TA0CTL |= TACLR;

      TA0CTL |= tassel_0 + MC_1;

      BIS_SR (LPM0_Bits + GIE);          // LPM0 (低功耗模式)启用中断

 

#pragma vector=TIMER0_A0_VECTOR

   _interrupt  void  Timer0_A0 (void){        // Timer0 A0中断服务例程

 

      //P1OUT ^= BIT0;                                     //切换红色 LED

此外、来自传感器的数据将存储在何处?

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

    请参阅 MSP430F241x、MSP430F261x 代码示例包(SLAC151)中的 MSP430x261x_TA 示例、并根据需要进行修改。 大多数差异涉及"TA"命名法而不是"TA0"、因为计时器时钟仍驻留在 P1.0上。 但是、该代码示例似乎不够充分、因为您应该使用计时器捕获模式根据已知时钟频率评估传感器脉冲。 所选的霍尔效应传感器也可在5V 电压下工作、因为 MSP430只能接受低于3.6V 的输入、因此您需要相应地使用电平转换器。

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

    我正在使用逻辑电平转换器来降低 MSP430所需的5V 电压。

    我使用的硬件来自使用 msp430f2618板的私人供应商。 它具有14引脚配置来连接传感器、配置如下:

    名称                          引脚编号

    VCC                              1

    GND                              2.

    P3.2/I2C_SCL                      3.

    P3.1/I2C_SDA                      4.

    P3.4/SPI_SIMO                     5.

    P3.5/SPI_SOMI                     6.

    P3.0/SPI_CLK                      7.

    P4.4/SPI_CS1                      8.

    P2.7/TA0/INT                       9.

    P2.5/INT                           10.

    P3.6/RADIO_GPIO3/UART1TX         11.

    P3.7/UART1 RX                     12.

    P6.0/A0                           13.

    P6.6/A6/DAC0                      14.

    如果我不正确、则必须将传感器的输出引脚连接到硬件中的引脚9。 但是、大多数示例代码使用 P1.0、2、3、并且这个硬件将 P2.7用作我感到困惑的定时器/中断引脚。

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

    您好 Amith、

    我已用 google 搜索传感器并进入此页面:

    它说明了传感器输出的两个方面:PWM 输出和50%(+/- 10%)的输出占空比、脉冲速率为7.5 * l/min 这在我看来不是 PWM、因此您无需测量脉宽、只需测量输出频率。 "数据表"中再次给出了一些其他值-有一个表格显示、120L/h 的频率为16Hz、但120L/h 为2l/min、这意味着8 * l/min 传感器的文档很糟糕、考虑到不同的情况、存在多个电源电压范围。 还有另一个关于脉冲7 * l/min 的信息...也许网络技术公司决定取平均值7.5;-P

    无论如何-通过传感器的最大流量为30L/min、因此最大频率为30 * 7.5 = 225Hz (网站上显示"每升脉冲数:450"-不知道这意味着什么)。 这非常慢。 如果您不熟悉计时器的捕获模式、则可以在引脚中断中使用递增变量对脉冲进行计数、并查看在一秒或任何其他时间段内计数了多少个脉冲。

    Dennis