- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试将 HR-S04 超声波距离传感器连接到 MSP430FR6989。我已经多次发现代码的编写位置,但那些据称适用于其他人的代码对我来说却不起作用。我的场景与其他人使用的场景之间的一个区别是,我没有要打印到的外部 LCD,而是尝试将输出显示到 Launchpad 上的板载 LCD,或者(因为对我不起作用)我正在尝试通过 UART 将其写入终端。下面是我的代码,以及我对可能出现问题的猜测:
该计划的想法是将“低谷时间”与“高谷时间”进行比较。这应该通过存储中断每次发生的上升沿和下降沿的 TA0CCR0 值并用这两个值进行基本算术来完成。
#include <msp430fr6989.h>
#define redLED BIT0
#define greenLED BIT7
#define US_TRIG BIT4
#define US_ECHO BIT5
#define US_MASK US_TRIG | US_ECHO
#define FLAGS_TERM UCA1IFG
#define RXFLAG UCRXIFG
#define TXFLAG UCTXIFG
#define TERM_TXBUFFER UCA1TXBUF
#define TERM_RXBUFFER UCA1RXBUF
unsigned int up_counter = 0,down_counter, distance_cm = 0, count = 0;
void initialize_TERM_UART(void)
{
P3SEL1 &= ~ (BIT4|BIT5);
P3SEL0 |= (BIT4|BIT5);
UCA1CTLW0 |= UCSSEL_2;
UCA1BRW = 8;
UCA1MCTLW = UCBRS3 | UCBRS2| UCBRS0 | UCBRS6_H | UCBRS5_H;
UCA1MCTLW &= ~UCOS16;
UCA1CTLW0 &= ~ UCSWRST;
UCA1IE |= UCRXIE;
UCA1IFG &= ~RXFLAG;
}
void uart_write_char_TERM(unsigned char ch)
{
// Wait for any ongoing transmission to complete
while ( (FLAGS_TERM & TXFLAG)==0 ) {}
// Write the byte to the transmit buffer
TERM_TXBUFFER = ch;
}
void uart_digit_sep_TERM(unsigned int n)
{
unsigned int digit;
if (n >= 10000)
{
digit = (n/10000) % 10;
uart_write_char_TERM(digit + '0');
}
else
uart_write_char_TERM('0');
if (n >= 1000)
{
digit = (n/1000) % 10;
uart_write_char_TERM(digit + '0');
}
else
uart_write_char_TERM('0');
if (n >= 100)
{
digit = (n/100) % 10;
uart_write_char_TERM(digit + '0');
}
else
uart_write_char_TERM('0');
if (n >= 10)
{
digit = (n/10) % 10;
uart_write_char_TERM(digit + '0');
}
else
uart_write_char_TERM('0');
digit = (n % 10);
uart_write_char_TERM(digit + '0');
uart_write_char_TERM(' ');
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TimerA0(void)
{
P1OUT ^= redLED;
P9OUT ^= greenLED;
if (TA0CCTL0 & CCI) // Raising edge
{
up_counter = TA0CCR0; // Copy counter to variable
}
else // Falling edge
{
// Formula: Distance in cm = (Time in uSec)/58
distance_cm = (TA0CCR0 - up_counter)/58;
uart_digit_sep_TERM(distance_cm);
}
TA0CCTL0 &= ~CCIFG;
TA0CTL &= ~TAIFG; // Clear interrupt flag - handled
}
void timer_init()
{
/* Timer A0 configure to read echo signal:
Timer A Capture/Compare Control 0 =>
capture mode: 1 - both edges +
capture synchronize +
capture input select 0 => P1.5 +
capture mode +
capture compare interrupt enable */
TA0CCTL0 |= CM_3 + SCS + CCIS_0 + CAP + CCIE;
TA0CCTL0 &= ~ CCIFG;
/* Timer A Control configuration =>
Timer A clock source select: 1 - SMClock +
Timer A mode control: 2 - Continous up +
Timer A clock input divider 0 - No divider */
TA0CTL |= TASSEL_2 + MC_2 + ID_0;
}
int main()
{
WDTCTL = WDTPW | WDTHOLD; // Stop Watch Dog Timer
PM5CTL0 &= ~LOCKLPM5;
P1DIR |= redLED + US_TRIG;
P9DIR |= greenLED;
P1OUT &= ~(redLED | US_TRIG) ;
P9OUT |= greenLED;
P1DIR &= ~US_ECHO; // Input direction for echo from sensor
P1SEL1 |= US_ECHO; // set US_ECHO as trigger for Timer from Port-1
P1SEL0 |= US_ECHO;
// Initialize timer for Ultrasonice distance sensing
timer_init();
initialize_TERM_UART();
_enable_interrupts();
while (1)
{
// measuring the distance
P1OUT |= US_TRIG; // assert
__delay_cycles(15); // 10us wide
P1OUT &= ~US_TRIG; // deassert
//__delay_cycles(60000); // 60ms measurement cycle
__delay_cycles(500000); // 0.5sec measurement cycle
//uart_digit_sep_TERM(i);
//i++;
}
}
当我在 TimerA0(void) ISR 中设置硬件断点运行上述代码时,断点永远不会被触发,因为程序永远不会进入 ISR。
这是我第一次使用捕获/比较中断,因此我的第一个想法是,我可能错误地配置了中断/计时器,但这很奇怪,因为其他人在类似网站上发布了这些代码,称该代码适用于他们。
我的另一个想法是,也许我的定时器配置和 UART 配置在某种程度上发生冲突,但这不应该影响 ISR 是否被触发。
不确定它是否有帮助,但我正在 OSX 10.10.5 上运行 CCS 9.2.0.00013
最佳答案
我在不同的传感器上运行了该程序(我批量购买了它们)并且该程序运行完美。应该注意的是,当您以折扣价购买一堆传感器时,它们不会全部起作用。
关于CCS/MSP430FR6989 : Capture/Compare Interrupt not working with HR-S04 Ultrasonic Sensor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378646/
我正在练习这个https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations时钟教程。代码中的所有内容对我来说都很清楚。接受这个 h
这个问题在这里已经有了答案: What tags in HTML5 are acknowledged of being self-closing? (3 个答案) 关闭 9 年前。 简单的问题。一个
我有无法更改的 HTML 标记。 示例 TEXT 1 some text TEXT 2 some text 我想删除紧跟在另一个 hr 之后且它们之间没有文本的任何 hr。正
替代 CSS3 简单样式的标记,如果这不起作用,则在 hr 样式下面使用子语句或标准 标记的子语句,如下代码所示。 有淡出边缘的简单样式的 CSS3 标签见链接 http://css-tricks.c
我有一个带有各种链接的工具栏,用 分组元素。因为呈现哪些链接取决于用户的权限,所以我们可能会以两个连续的分隔符结束,或者在末尾有一个分隔符。这是我们不想要的。 Link 1 Absent link
-ability (in nouns 构成名词) : ◊ capability 能力 ◊ responsibility 责任 -ibility (in nouns 构成名词) : ◊ ca
我抓取了运行完成时间的数据集,其中包括在一小时内和一小时内完成的运行者。小时内的运行者编码为 M:S,例如48 分 12 秒完赛的选手为 48 分 12 秒。超过一小时的运行者编码为 H:M:S,例如
SAP HR 显然有几个模型来描述职位 (S)、工作 (C)、组织 (O) 和人员 (P) 对象之间的关系,组织管理 (OM) 模块用于维护这些对象。 P(Person)对象通常是持有者(S)。 有
我正在努力实现尽可能接近下图的东西。 我目前使用下面的代码获得以下内容,但似乎无法完全满足我的需要。 当前样式: 我的 CSS: hr:after { background: url('../
我想在 php 的表单内容中添加一条水平线。那可能吗? 我写了下面的代码,但“hr”在我的电子邮件中看起来像这样 PR1:产品1 PR2:product2 PR3:产品3 PR4:产品4 我该怎么办?
我目前正在使用 PHPWord 生成我的文档,但我想在文档中添加一条水平线。就像在 HMTL 中一样。在 Word 中,您可以通过在 Enter 中键入三个下划线来完成此操作,但我想在生成的文档中使用
在我的 fiddle 中,您会看到文本中断,我想添加 在那里并在 CSS 中装饰它,但我不知道如何执行此操作,因为当我这样做时它会破坏我的内联 block ,我想这是因为 是一个 block 元素。对
在我的 fiddle 中,您会看到文本中断,我想放一个 在那里并在 CSS 中对其进行装饰,但我不知道该怎么做,因为当我这样做时它会破坏我的内联 block ,我认为那是因为 是 block 元素。有
这段代码是我做的 {item.awards.map((obj,i) => Name :
我不确定该问题的确切标题是什么,因为我不知道是什么原因造成的,也不知道可能是什么,所以这个问题可能很难回答,但如果有人愿意花时间看看代码,我们将不胜感激。 这是问题:http://imgur.com/
我遇到了一些 的问题我网站上的标签。 reference image 正如您在这个非常简单的 fiddle 中看到的那样 https://jsfiddle.net/bau1hp9L/ 标签并非都以相
这个问题在这里已经有了答案: change the linear value of gradient hr (1 个回答) Using CSS alone, how can you have a B
我有一个 我需要它具有颜色(十六进制值)#ac8900。如果我用老式的方式设计它 它工作正常。但我希望用 CSS 设置所有样式,所以我在我的样式表中尝试了这个: hr{ color: #ac8900
我们有一条 hr 线,它下面有一个奇怪的黑色像素。 截图:http://i52.tinypic.com/2vwxy78.jpg 我们的代码: HTML: CSS: hr { border-b
有没有更简单的方法,无需任何技巧,让它在视觉上看起来像这样(底部边框从每边填充 10 像素),而不必为此创建额外的行? table { width: 100%; border-collapse
我是一名优秀的程序员,十分优秀!