- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想配置PIC24F16KA102的timer1来计数。时钟源必须是8 MHz 的内部时钟。我配置了寄存器T1CON并将TON位设置为高电平以启动定时器。 Timer1 设置为每 100 us 溢出一次,然后用一个 while 周期增加变量计数。我不明白,因为timer1不工作,我观察到它没有增加。为什么?
#include <xc.h>
#include "config.h"
int count = 0;
void main(void) {
TRISB = 0;
T1CON = 0; //TRM1 stopped, internal clock source, prescaler 1:1
_TON = 1;
TMR1 = 65135; //overflow of TM1 every 100 us (400 counts)
while (1) {
if (TMR1 == 65535) {
count++; // increase every 100 us
TMR1 = 65135;
}
}
}
最佳答案
尝试设置定时器 1 周期寄存器 (PR1) 并使用中断,而不是 try catch 并重新加载 TMR1 的最终计数。您试图在恰好 65535 上捕获 TMR1,但这几乎永远不会起作用,因为一旦 TMR1 达到 65535,它就会溢出并再次从 0 开始计数。编辑:当然,这是假设它很重要。我不知道当您将周期寄存器保留为 0 时,定时器的行为是什么。它可能只是简单地计数到最大值 65535,然后重置为 0,或者它可能根本不会计数并连续将 PRx 加载到 TMRx 中,因为它们匹配于 0
PRx 旨在定义给定计时器所需的周期,在本例中为 100uS。 PR1 = 400。一旦 TMR1 = PR1,定时器将自动重置并引发中断以提醒您定时器已过。
volatile unsigned int count = 0; //Vars that change in an ISR should be volatile
PR1 = 400; //Set Period for Timer1 (100us)
T1CON = 0x8000; //Enable Timer1
IEC0bits.T1IE = 1; //Enable Timer1 Interrupt
IPC0bits.T1IP = 0b011;
将其与 ISR 函数配对,以便在计时器到期时增加计数:
void __attribute__ ((interrupt,no_auto_psv)) _T1Interrupt (void)
{
count++;
IFS0bits.T1IF = 0; //Make sure to clear the interrupt flag
}
您也可以在没有任何中断的情况下尝试类似的操作:
void main(void){
unsigned int count = 0;
TMR1 = 0;
T1CON = 0x8000; //TON = 1
while(1){
if (TMR1 >= 400){
count++;
TMR1=0;
}
}
}
但是我建议使用 PR 寄存器和 ISR。这就是它的目的。
编辑:我还建议阅读有关定时器的 PIC24F 引用手册: Here
关于c - PIC24F16KA102 上的定时器 1 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366107/
我正在尝试为我正在处理的项目的 URL 缩短器设置一个带有 .ka 后缀的域。例如类似于 drbl.in。我在网上查了一下,这个后缀似乎还没有在任何国家注册过,也没有出现过任何域名服务。关于如何解决这
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
这是我的简单代码。 int num1, num2; cin >> num1 >> num2; int num3, num4; cin >> num3 >> num4; double result1 =
在市场上我的一个 Android 应用程序的应用程序统计页面中,我看到名为 asura、eagle 和 ka 的设备。此应用程序可用于 Google TV,而我的其他应用程序不可用,因此我假设这些应用
我正在使用 kABPersonPhoneProperty 从地址簿中获取 iPhone“电话号码”。然而,一旦我运行该程序,即使联系人有手机号码、家庭号码和 iPhone 号码,也只出现一个电话号码。
我是一名优秀的程序员,十分优秀!