Z
zanor
Guest
只是为了好玩
, 我想为我的汽车数字转速表。但是我无法取得准确的读数。
我用示波器测量应该有〜0,06802721秒当我之间的发动机怠速脉冲(14,7赫兹)。“TMR_count”在我的源代码应该是66后。但我得到61。这是〜0.00512秒速度太慢,为什么?
在计时器有一些延误/中断操作我不知道?
我使用的一个面包板1 PIC16F84a。请问“长”的方式从晶体的微芯片慢下来?电缆是〜3-4厘米...
这是我的代码,在MikroC格式。
代码:#包括<built_in.h> / /对于卢();&喜();= 0整合酶;
廉政TMR_count = 0; / / 1X的= 0.001024秒
廉政TMR_value = 0; / / 1X的= 0.000004秒
廉政转速= 0;
浮动时间= 0;无效中断()(
如果(INTCON.INTF)
(
如果(1“= 63)
(
TMR_value = TMR0;
TMR0 = 0;时间=(TMR_count * 0.001024) (TMR_value * 0.000004); / /时间两火花
转速=(1 /次)* 60; / /转速,2卷取机和浪费火花= 1火花/革命EEPROM_WRITE(一,TMR_count);
一 ;
EEPROM_WRITE(一,TMR_value);
一 ;TMR_count = 0;
)
INTCON.INTF = 0;
)
如果(INTCON.T0IF)
(
TMR_count ;
INTCON.T0IF = 0;
)
)无效的main()(
门= 0;
特里沙= 0b00001000;
PORTB的= 0;
TRISB = 0b00000001;PORTB.B3 = 1;
Delay_MS(1000);
PORTB.B3 = 0;INTCON.RBIF = 0;INTCON.GIE = 1; / /允许中断
INTCON.INTE = 1; / /启用包中断
INTCON.T0IE = 1; / /允许定时器0 owerflow中断OPTION一= 0x81; / /上拉禁用!而(1);)
, 我想为我的汽车数字转速表。但是我无法取得准确的读数。
我用示波器测量应该有〜0,06802721秒当我之间的发动机怠速脉冲(14,7赫兹)。“TMR_count”在我的源代码应该是66后。但我得到61。这是〜0.00512秒速度太慢,为什么?
在计时器有一些延误/中断操作我不知道?
我使用的一个面包板1 PIC16F84a。请问“长”的方式从晶体的微芯片慢下来?电缆是〜3-4厘米...
这是我的代码,在MikroC格式。
代码:#包括<built_in.h> / /对于卢();&喜();= 0整合酶;
廉政TMR_count = 0; / / 1X的= 0.001024秒
廉政TMR_value = 0; / / 1X的= 0.000004秒
廉政转速= 0;
浮动时间= 0;无效中断()(
如果(INTCON.INTF)
(
如果(1“= 63)
(
TMR_value = TMR0;
TMR0 = 0;时间=(TMR_count * 0.001024) (TMR_value * 0.000004); / /时间两火花
转速=(1 /次)* 60; / /转速,2卷取机和浪费火花= 1火花/革命EEPROM_WRITE(一,TMR_count);
一 ;
EEPROM_WRITE(一,TMR_value);
一 ;TMR_count = 0;
)
INTCON.INTF = 0;
)
如果(INTCON.T0IF)
(
TMR_count ;
INTCON.T0IF = 0;
)
)无效的main()(
门= 0;
特里沙= 0b00001000;
PORTB的= 0;
TRISB = 0b00000001;PORTB.B3 = 1;
Delay_MS(1000);
PORTB.B3 = 0;INTCON.RBIF = 0;INTCON.GIE = 1; / /允许中断
INTCON.INTE = 1; / /启用包中断
INTCON.T0IE = 1; / /允许定时器0 owerflow中断OPTION一= 0x81; / /上拉禁用!而(1);)