標題:
中斷問題...
[打印本頁]
作者:
kkdc0426
時間:
2012-9-6 14:39
標題:
中斷問題...
//檔名:CH8-1.C
//目的:當系統重置時,單燈右移,當外部中斷0發生中斷時,P0閃爍5次,結束後, 又回到單燈右移
//試不出來
#include <C8051F330.h>
unsigned char LED=0x80;
main()
{
void delay(unsigned int);
PCA0MD &= ~0x40; //關看門狗
XBR1 = 0x40; //Cossbar Enable
P0MDOUT=0xff; //設定P0.0-7為高電位輸出
SP=0x60;
EA=1;
EX0=1;
TCON=0x01;
while(1)
{
P0=~LED;
delay(50000);
LED>>=1;
if(LED==0)
LED=0x80;
}
}
void delay(unsigned int count)
{
int i;
for(i=0;i<count;i++);
}
void EX0_int(void) interrupt 0
{
int i;
unsigned char j;
j=LED;
P0=0xff;
for(i=0;i<10;i++)
{
delay(20000);
P0^=0xff;
}
LED=j;
}
想請問,我把SW接到P1.0,需如何修改,可以報行,這種式是從8051改的,我想用在F330上面,
作者:
kkdc0426
時間:
2012-9-6 14:40
想請問,我把SW接到P1.0落地,需如何修改,才可以執行,
這種式是從8051改的,我想用在F330上面練習
作者:
mike
時間:
2012-9-6 17:55
ext_interrupt0 pin 是在p0.0~p0.7 , 把led顯示移到p1去就行了.
作者:
kkdc0426
時間:
2012-9-7 08:32
那再請問
1.
void EX0_int(void) interrupt 0
這個"0"代表什麼意思??
2.
我已把SW改到P0,LED改到P1,
已經OK了,但為什麼只能按P0.1,才會產生中斷,我如果要改成P0.0有辦法改嗎???
作者:
kkdc0426
時間:
2012-9-7 08:32
那再請問
1.
void EX0_int(void) interrupt 0
最後面這個"0"代表什麼意思??
2.
我已把SW改到P0,LED改到P1,
已經OK了,但為什麼只能按P0.1,才會產生中斷,我如果要改成P0.0有辦法改嗎???
作者:
Ivanlin
時間:
2012-9-25 11:31
void EX0_int(void) interrupt 0
後面的數字 代表 中斷對照表
你可以 在 Datasheet 去搜尋 interrupt 就可以找到這個表
作者:
mowson
時間:
2012-9-27 14:19
INT0 預設為P0.1 , INT1預設為P0.0 ,
可參考datasheet 關於 IT01CF 的說明 , 選擇你要的 pin ,
不知道怎麼改 , 最快的方法 ,
void EX0_int(void) interrupt 0 改為
void EX0_int(void) interrupt 2 ,
直接使用 INT1 去中斷
歡迎光臨 茂宣企業 產品討論區 (http://www.morrihan.com/newbb/)
Powered by Discuz! 6.0.0