Re: [問題] 量測脈波寬度
小弟生平的第一個Timer,XD 第一次用計時器
請大大幫忙看一下,沒有有寫錯呢? (希望沒錯)
============================================
說明 : 初始 A=0,B=0.
當 0.1us進中斷判 Test =1的話, count++
在TEST = 1時也判斷 是否count > 6 ,
若不是 表示pulse 小於 1ms , 所以給 A = 1 , B = 0
若是 , 可能TEST一直會1或 >1ms了 , 所以給 A= 0 , B =1
當TEST =0 就會 將count = 0, 等下一次TEST =1
所以TEST 不需要接BJT了??因為我是判斷High準位....
另外, 我取樣要很小, 沒有要計數很久, 應該用8bit就可以吧?
不知道有沒有暇癡......
============================================
sfr IE = 0xA8;
sfr P3 = 0xB0;
sfr TL0 = 0x8A;
sfr TH0 = 0x8C;
sfr TMOD = 0x89;
sfr TCON = 0x88;
sbit TR0 = TCON^4;
sbit EA = IE^7;
sbit ET0 = IE^1;
sbit B = P3^1;
sbit A = P3^0;
sbit TEST = P3^2;
static unsigned long count = 0;
void Main(void)
{
TMOD = (TMOD & 0xF0) | 0x03; /* Set T/C0 Mode */
ET0 = 1; /* Enable Timer 0 Interrupts */
TR0 = 1; /* Start Timer 0 Running */
EA = 1; /* Global Interrupt Enable */
TL0 = 256 - 240;
A = 0; B = 0;
while(1)
{
}
}
void Timer0ISR_int(void) interrupt 1 using 1
{
if (TEST == 1)
{
count++;
if (count < 6)
{
A = 1; B = 0;
}
else
{
A = 0; B = 1;
}
}
else
{
A = 0; B = 0;
count = 0;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.194.110
※ 編輯: BlueFeel 來自: 123.195.194.110 (04/13 22:55)
推
04/14 03:12, , 1F
04/14 03:12, 1F
→
04/14 07:58, , 2F
04/14 07:58, 2F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章