void GPIO_Init(void) { PC_DDR |=0x80; PC_CR1 |=0x80;/*OUTPUT*/ PC_CR2 &=0x7f;/*PC7*/ PC_DDR &=0xbf; PC_CR1 &=0xbf;/*Input*/ PC_CR2 &=0xbf;/*PC6*/ PC_DDR|=0x20; PC_CR1|=0x20;/*OUTPUT*/ PC_CR2&=0xdf;/*pc5*/ } void TIM2_Init(void) { TIM2_IER =0x00; TIM2_EGR=0x01; TIM2_PSCR = 0X04; /*Configure TIM2 prescaler=1MHZ */ TIM2_ARRH =1000/256; TIM2_ARRL =1000%256;/*1ms*/ TIM2_IER |=0X01; TIM2_CR1|=0X81;//ENABLE TIM1 } void TIM1_CatchInit(void) { TIM1_IER =0x00; TIM1_EGR=0x01; // TIM1_SR1_CC1IF &=0xf9; // TIM1_SR1_CC2IF =0x00; TIM1_CCER1&=0xee;//DISABLED TIM1 TIM1_CCMR1|=0x01; TIM1_CCER1&=0xec; TIM1_CCMR2|=0x02; //TIM1_CCMR2&=0xfe; TIM1_CCER1|=0x20; TIM1_SMCR |=0x54; TIM1_PSCRH = 0x00; TIM1_PSCRL = 0x0F; /*Configure TIM1 prescaler=1MHZ */ TIM1_IER |=0X06; TIM1_CCER1|=0x11;//ENABLED TIM1 catch TIM1_CR1|=0X81;//ENABLE TIM1CNT // TIM1_CCER1_CC1E=0X01; // TIM1_CCER1_CC2E=0X01;/*ENABLED INPUT INTERRUPT*/ // TIM1_CR1|=0X81;//ENABLE TIM1 } @far @interrupt void TIM1_Compare(void) { if((TIM1_SR1&0x02)==0x02) { TIM1_SR1&=0xfd; PWM_FLAG++; } if((TIM1_SR1&0x04)==0x04) { TIM1_SR1&=0xfb; PWM_FLAG++; } } 问题是我用TIM2定时器控制PC5高低电位模拟PWM信号,然后输入到PC6通道,PC6也就是TIM1_CH1通道吧 应该能进入捕获中断 查了好久找不到原因 我参考的帖子http://www.doc88.com/p-8179991153683.html写的 |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
回复:STM8S pwm输入捕获 进入不了中断 贴代码
RE:STM8S pwm输入捕获 进入不了中断 贴代码
这个是前提