[請益] 請教以8051記錄腳位HI-LO時間的CODE
各位前輩好:
小弟目前在寫一個以8051紀錄紅外線HI-LO時間的code
打算將波形時間紀錄之後 可以再完整發送出去 類似紅外線 repeater
目前是以NEC Code 為紀錄項目 高準位 +低準位 約134byte
但是在紀錄方面就出了一些問題 都只會記錄到第76byte就沒了
想請前輩幫我看一下 是哪裡出了問題,有其他可以更簡化的方法嗎?
#include <C8051F340.h>
#include <intrins.h> // nop指令需要引用
#define uchar unsigned char
#define uint unsigned int
void exint0();
void IR_repeat(void);
void TT0(bit BT,TH0,TL0);
void interrupt_int(void);
sbit IR_IN = P0^2;//紅外線接收電路端
sbit IR_OUT = P1^1;
uchar i;
idata uchar IR_code_time[134];//識別碼,操作碼存放
/****************** 主函數 *******************/
void main(void)
{
OSCICN = 0x80; //0x80=1.5Mhz 0x81=3Mhz 0x82=6Mhz 0x83-12Mhz
PCA0MD &= 0X9F; //看門狗OFF
P1MDOUT = 0x02;//Push Pull
P2MDOUT = 0xff;//pp
XBR1 = 0x40;//致能crossbar
TMOD=0X01;//timer0工作在模式1 16bit計數器
interrupt_int();
for (i=0;i<=133;i++)初始值IR_code_time 以便除錯
{
IR_code_time[i]=0xaa;
}
i=1;
TH0=0;
TL0=0;
while(1)
{
if((TH0==0xFF)|(i==134)){
TR0=0; IE=0x80; break;}//訊號超時 關閉計時器、外部中斷,跳出迴圈
}
IR_code_time[0]=i-1;//紀錄byte數
}
/********************** 中斷函數初始************************/
void interrupt_int(void)
{
IT01CF= 0x82; //設定LOW中斷腳=P0^2 HIGHT中斷腳P0^4
IT0=0; //外部中斷0邊緣觸發
IE = 0x81;
}
/********************** 外部中斷函數************************/
void exint0() interrupt 0
{
IR_code_time[i+1]=TL0;
IR_code_time[i]=TH0;
TR0=1;
TL0=0;
TH0=0;
IT01CF^=0x08; //將IN0PL反向 調整HI-LO觸發轉換
i++;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.222.115
→
07/27 11:57, , 1F
07/27 11:57, 1F
→
07/27 12:02, , 2F
07/27 12:02, 2F
→
07/27 12:28, , 3F
07/27 12:28, 3F
→
07/27 12:30, , 4F
07/27 12:30, 4F
謝謝前輩提醒我這個盲點 我等等有空就馬上來去測試!
※ 編輯: Deltaguita 來自: 60.251.222.115 (07/27 12:31)
推
07/27 13:00, , 5F
07/27 13:00, 5F
→
07/27 13:03, , 6F
07/27 13:03, 6F
→
07/27 13:04, , 7F
07/27 13:04, 7F
→
07/27 17:34, , 8F
07/27 17:34, 8F
→
07/27 19:33, , 9F
07/27 19:33, 9F
→
07/27 19:45, , 10F
07/27 19:45, 10F
→
07/27 21:12, , 11F
07/27 21:12, 11F
→
07/27 23:33, , 12F
07/27 23:33, 12F
→
07/27 23:34, , 13F
07/27 23:34, 13F
→
07/27 23:34, , 14F
07/27 23:34, 14F
→
07/27 23:35, , 15F
07/27 23:35, 15F
→
07/28 00:19, , 16F
07/28 00:19, 16F
→
07/28 00:20, , 17F
07/28 00:20, 17F
推
07/28 00:21, , 18F
07/28 00:21, 18F
→
07/28 00:22, , 19F
07/28 00:22, 19F
→
07/28 00:24, , 20F
07/28 00:24, 20F
→
07/28 00:24, , 21F
07/28 00:24, 21F
推
07/28 00:29, , 22F
07/28 00:29, 22F
→
07/28 00:30, , 23F
07/28 00:30, 23F
→
07/28 00:36, , 24F
07/28 00:36, 24F
推
07/28 00:46, , 25F
07/28 00:46, 25F
推
07/28 11:26, , 26F
07/28 11:26, 26F
推
07/28 19:45, , 27F
07/28 19:45, 27F
推
07/28 19:46, , 28F
07/28 19:46, 28F
→
07/28 19:48, , 29F
07/28 19:48, 29F
→
07/28 19:49, , 30F
07/28 19:49, 30F
→
07/28 20:17, , 31F
07/28 20:17, 31F
推
07/28 20:43, , 32F
07/28 20:43, 32F
→
07/28 20:44, , 33F
07/28 20:44, 33F
→
07/28 20:45, , 34F
07/28 20:45, 34F
→
07/28 20:46, , 35F
07/28 20:46, 35F
→
07/28 20:47, , 36F
07/28 20:47, 36F
→
07/28 20:48, , 37F
07/28 20:48, 37F
→
07/28 22:37, , 38F
07/28 22:37, 38F
→
07/28 22:38, , 39F
07/28 22:38, 39F
→
07/28 22:39, , 40F
07/28 22:39, 40F
推
07/28 22:53, , 41F
07/28 22:53, 41F
→
07/28 22:54, , 42F
07/28 22:54, 42F
→
07/28 22:56, , 43F
07/28 22:56, 43F
→
07/28 23:01, , 44F
07/28 23:01, 44F
推
07/28 23:20, , 45F
07/28 23:20, 45F
推
07/28 23:57, , 46F
07/28 23:57, 46F
推
07/29 00:00, , 47F
07/29 00:00, 47F
→
07/29 00:01, , 48F
07/29 00:01, 48F
→
07/29 00:02, , 49F
07/29 00:02, 49F
→
07/29 00:03, , 50F
07/29 00:03, 50F
→
07/29 00:04, , 51F
07/29 00:04, 51F
→
07/29 00:06, , 52F
07/29 00:06, 52F
→
07/29 00:07, , 53F
07/29 00:07, 53F
→
07/29 00:08, , 54F
07/29 00:08, 54F
→
07/29 00:08, , 55F
07/29 00:08, 55F
→
07/29 00:09, , 56F
07/29 00:09, 56F
推
07/29 00:12, , 57F
07/29 00:12, 57F
→
07/29 00:13, , 58F
07/29 00:13, 58F
→
07/29 00:14, , 59F
07/29 00:14, 59F
→
07/29 00:15, , 60F
07/29 00:15, 60F
→
07/29 00:16, , 61F
07/29 00:16, 61F
→
07/29 00:17, , 62F
07/29 00:17, 62F
→
07/29 00:18, , 63F
07/29 00:18, 63F
→
07/31 18:37, , 64F
07/31 18:37, 64F
→
07/31 18:37, , 65F
07/31 18:37, 65F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章