註冊
登錄
會員
幫助
茂宣企業 產品討論區
»
Silicon Labs 產品討論區
» 中斷問題...
‹‹ 上一主題
|
下一主題 ››
發新話題
發佈投票
發佈商品
發佈懸賞
發佈活動
發佈辯論
發佈視頻
打印
中斷問題...
kkdc0426
新手上路
發短消息
加為好友
當前離線
1
#
大
中
小
發表於 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上面,
精華
0
積分
20
閱讀權限
10
在線時間
8 小時
註冊時間
2012-8-8
最後登錄
2012-9-24
查看詳細資料
TOP
kkdc0426
新手上路
發短消息
加為好友
當前離線
2
#
大
中
小
發表於 2012-9-6 14:40
只看該作者
想請問,我把SW接到P1.0落地,需如何修改,才可以執行,
這種式是從8051改的,我想用在F330上面練習
精華
0
積分
20
閱讀權限
10
在線時間
8 小時
註冊時間
2012-8-8
最後登錄
2012-9-24
查看詳細資料
TOP
mike
新手上路
發短消息
加為好友
當前離線
3
#
大
中
小
發表於 2012-9-6 17:55
只看該作者
ext_interrupt0 pin 是在p0.0~p0.7 , 把led顯示移到p1去就行了.
精華
0
積分
22
閱讀權限
10
在線時間
2 小時
註冊時間
2011-7-21
最後登錄
2013-10-11
查看詳細資料
TOP
kkdc0426
新手上路
發短消息
加為好友
當前離線
4
#
大
中
小
發表於 2012-9-7 08:32
只看該作者
那再請問
1.
void EX0_int(void) interrupt 0
這個"0"代表什麼意思??
2.
我已把SW改到P0,LED改到P1,
已經OK了,但為什麼只能按P0.1,才會產生中斷,我如果要改成P0.0有辦法改嗎???
精華
0
積分
20
閱讀權限
10
在線時間
8 小時
註冊時間
2012-8-8
最後登錄
2012-9-24
查看詳細資料
TOP
kkdc0426
新手上路
發短消息
加為好友
當前離線
5
#
大
中
小
發表於 2012-9-7 08:32
只看該作者
那再請問
1.
void EX0_int(void) interrupt 0
最後面這個"0"代表什麼意思??
2.
我已把SW改到P0,LED改到P1,
已經OK了,但為什麼只能按P0.1,才會產生中斷,我如果要改成P0.0有辦法改嗎???
精華
0
積分
20
閱讀權限
10
在線時間
8 小時
註冊時間
2012-8-8
最後登錄
2012-9-24
查看詳細資料
TOP
Ivanlin
版主
發短消息
加為好友
當前離線
6
#
大
中
小
發表於 2012-9-25 11:31
只看該作者
void EX0_int(void) interrupt 0
後面的數字 代表 中斷對照表
你可以 在 Datasheet 去搜尋 interrupt 就可以找到這個表
精華
0
積分
73
閱讀權限
100
在線時間
47 小時
註冊時間
2009-3-9
最後登錄
2013-10-9
查看詳細資料
TOP
mowson
新手上路
發短消息
加為好友
當前離線
7
#
大
中
小
發表於 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 去中斷
精華
0
積分
13
閱讀權限
10
在線時間
7 小時
註冊時間
2010-3-9
最後登錄
2012-11-23
查看詳細資料
TOP
‹‹ 上一主題
|
下一主題 ››
產品討論區
Avago 產品討論區
Linear Tech 產品討論區
Prolific 產品討論區
Silicon Labs 產品討論區
站務公告
其他議題
HR 小分享