完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
程序如下
主程序 #include "time.h" #include "led.h" void Clk_Init() { CLK->PCKENR1 = 0x00; CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1 ); } void main() { __disable_interrupt(); Clk_Init(); Led_Init(); Time_Init(); __enable_interrupt(); //开中断 while (1); } LED文件 LED.h #ifndef __led_h #define __led_h #include "stm8s_gpio.h" #define LED2_PIN GPIO_PIN_6 void Led_Init(); void Led2_Open(); void Led2_Close(); void Led2_Toggle(); void Led3_Toggle(); void Led_IO_Init(); #endif LED.c #include "led.h" void Led_IO_Init() { GPIO_Init(GPIOF, LED2_PIN, GPIO_MODE_OUT_PP_HIGH_FAST); } void Led2_Open() { GPIO_WriteLow(GPIOF, LED2_PIN); } void Led2_Close() { GPIO_WriteHigh(GPIOF, LED2_PIN); } void Led2_Toggle() { GPIO_WriteReverse(GPIOF, LED2_PIN); } void Led_Init() { Led_IO_Init(); Led2_Close(); } 定时器文件、 time.h #ifndef __time_h #define __time_h #include "stm8s.h" #include "stm8s_clk.h" #include "stm8s_tim1.h" #include "stm8s_it.h" void Time_Init(); #endif time.c #include "time.h" void Time_Init() { CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1,ENABLE); TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,1000,0); // 分频为16;向上计数模式;timer1的周期值为1000; TIM1_ARRPreloadConfig(ENABLE); // 使能自动重装载 TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); TIM1_Cmd(ENABLE); } 中断处理部分函数 INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11) { Led2_Toggle(); TIM1_ClearITPendingBit(TIM1_IT_UPDATE); } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
470 浏览 0 评论
532 浏览 0 评论
660 浏览 0 评论
822 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
758 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17026 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 23:26 , Processed in 0.803566 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1930