本帖最后由 dbwu8280 于 2019-10-26 20:52 编辑
大家好!
关于STM8S003的中断响应时间,经测试时9us,能否加快!
采用网上例程:《第三讲_库函数移植_GPIO外部中断》程序如附件:
系统采用最简系统,取内部16MRC时钟,不分频。
PC5中断信号输入,
PD2电平取反输出。
在PC5口线加上20us的低电平脉冲,
但是PD2上的电平取反输出延时将近9us,
请各位高手指点,为什么中断响应这么久,可否缩短,怎么改进。
谢谢大家!
用自己写的程序也是如此。中断响应时间都是9us左右。
在stm8_it.c中中断处理程序
INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
GPIO_WriteReverse(GPIOD , GPIO_PIN_2); //对LED1灯进行异或取反控制
}
在main.c程序如下:
void KEY2_Init()
{
GPIO_Init(GPIOC , GPIO_PIN_5 , GPIO_MODE_IN_PU_IT); //配置PA3为带上拉电阻并产生中断的输入
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC , EXTI_SENSITIVITY_FALL_ONLY); //配置PC端口为下降沿产生中断
}
void LED1_Init()
{
GPIO_Init(GPIOD , GPIO_PIN_2 , GPIO_MODE_OUT_PP_LOW_FAST); //配置PD2为输出
}
int main(void)
{
disableInterrupts(); //首先关闭系统的总中断
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); // 配置系统时钟为1分频,即系统时钟为16MHZ
LED1_Init();
KEY2_Init();
enableInterrupts(); //打开系统的总中断
while(1);
}
程序如下:
第三讲_库函数移植_GPIO外部中断.rar
(2.69 MB)
实测波形如下:
|