Untitled
Michael
c_cpp
2 years ago
1.2 kB
13
Indexable
/*
PA5 中斷觸發方式: 下降沿+低電平
PB2 上升沿
PC3 下降沿
PD4 上升沿+下降沿
PC 外部中斷軟件優先級: 2
PE 外部中斷軟件優先級: 1
*/
#include "iostm8s208mb.h"
void main()
{
// .....
// main的軟件優先級生到最高3
asm("sim");
// 設定 PA PB PC PD 的中斷觸發方式
EXTI_CR1=0xE4;
// PE PD PC PB
// ITC_SPR2="01 11 00 11"
// PC VECT5SPR[1:0]=00 PC 外部中斷軟件優先級: 2
// PE VECT7SPR[1:0]=01 PE 外部中斷軟件優先級: 1
ITC_SPR2=0x73;
// PA5 在輸入模式下才有中斷功能
// set PA5=input
PA_DDR_DDR5=0;
// set PA5 為弱上拉
PA_CR1_C15=1;
// 使能 PA5 的外部中斷功能
PA_CR2_C25=1;
// PB2 在輸入模式下才有中斷功能
// set PB2=input
PB_DDR_DDR2=0;
// set PB2 為弱上拉
PB_CR1_C12=1;
// 使能 PB2 的外部中斷功能
PB_CR2_C22=1;
// PC3 在輸入模式下才有中斷功能
// .......
// PD4 在輸入模式下才有中斷功能
// .......
// main的軟件優先級降到最低0(這樣PABCD的中斷才會被處理)
asm("sim");
}Editor is loading...