本帖最后由 xxkj2010 于 2024-1-9 12:04 编辑
问题二:
用STC-ISP中的STC8H PWM中断程序修改:
- //PWMB 设置
- PWMB_PSCR = 24000-1; //分频
- PWMB_ARR = 1000; //设置PWMB周期为1000,1秒
- PWMB_IER = 0x01; //使能PWMB中断
- PWMB_CR1 = 0x01; //计数器向上计数,并启动PWMB模块
-
-
- }
-
- void PWMB_Isr() interrupt 27
- {
- if (PWMB_SR1 & 0x01)
- {
- PWMB_SR1 &= ~0x01;
- LED = ~LED; //测试端口
- }
- }
-
- void INT0_Isr() interrupt 0
- {
-
-
-
- }
复制代码
这样PWMB能正常中断,从而使接在P54的LED灯闪动。
但是如果加入将PWMB影射到某个端口的代码,就不能测试到正常的结果。
- //外部中断0设置
- EX0=1;//使能外部中断0
- IT0=1;// 使能 INT0 下降沿中断
-
- //PWMB 设置
- PWMB_PSCR = 24000-1; //分频
- PWMB_ARR = 1000; //设置PWMB周期为1000,1秒
- PWMB_IER = 0x01; //使能PWMB中断
- PWMB_CR1 = 0x01; //计数器向上计数,并启动PWMB模块
- PWMB_ENO =0x40; //0100 0000,使能 PWM8 输出
- PWMB_PS =0x40; //0100 0000,输出到P34
-
- }
-
- void PWMB_Isr() interrupt 27
- {
- if (PWMB_SR1 & 0x01)
- {
- PWMB_SR1 &= ~0x01;
- // LED = ~LED; //测试端口
- }
- }
-
- void INT0_Isr() interrupt 0
- {
- LED = ~LED; //测试端口
-
- }
复制代码
究竟在哪个环节出错了,请大佬赐教,谢谢!
|