21ic问答首页 - 变量不用计算就可以自增吗?
变量不用计算就可以自增吗?
winfpt2024-08-06
下边是航顺HK32F030MF4P6的官方基本定时器例程,看到里边定义了一个time变量,但是没看到有计算过程(在整个工程中其他文件中也没有找到time变量),请问变量不计算怎么可以自增?下附部分代码:
/**
******************************************************************************
* @file main.c
* @author Alexander
* @version V1.0
* @date 2022-xx-xx
* @brief 基本定时器
******************************************************************************
* @attention
*
* 实验平台:HK32F030M开发板
* 论坛 :https://bbs.21ic.com/iclist-1010-1.html
*
******************************************************************************
*/
#include "hk32f030m.h"
#include "bsp_led.h"
#include "bsp_TimBase.h"
volatile uint32_t time = 0; // ms 计时变量
/**
* @brief 主函数
* @param 无
* @retval 无
*/
int main(void)
{
/* LED 端口初始化 */
LED_GPIO_Config();
BASIC_TIM_Init();
while (1)
{
if (time == 500) /* 1000 * 1ms = 1s 时间到 */
{
time = 0;
/* LED1 取反 */
HandLED_TOGGLE;
}
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(char *file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif /* USE_FULL_ASSERT */
我是新人,还没有家园币,暂时还没法设置悬赏,实在不好意思,麻烦大家了,多谢赐教!
/**
******************************************************************************
* @file main.c
* @author Alexander
* @version V1.0
* @date 2022-xx-xx
* @brief 基本定时器
******************************************************************************
* @attention
*
* 实验平台:HK32F030M开发板
* 论坛 :https://bbs.21ic.com/iclist-1010-1.html
*
******************************************************************************
*/
#include "hk32f030m.h"
#include "bsp_led.h"
#include "bsp_TimBase.h"
volatile uint32_t time = 0; // ms 计时变量
/**
* @brief 主函数
* @param 无
* @retval 无
*/
int main(void)
{
/* LED 端口初始化 */
LED_GPIO_Config();
BASIC_TIM_Init();
while (1)
{
if (time == 500) /* 1000 * 1ms = 1s 时间到 */
{
time = 0;
/* LED1 取反 */
HandLED_TOGGLE;
}
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(char *file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif /* USE_FULL_ASSERT */
我是新人,还没有家园币,暂时还没法设置悬赏,实在不好意思,麻烦大家了,多谢赐教!
赞0
评论
2024-08-06
@winfpt :hk32f030m_it.c,文件末尾
没找到定时器终端函数,在哪个文件的哪个位置?
赞0
评论
2024-08-07
赞0
评论
2024-08-07
赞0
要把答案分享给众人,基本的论坛礼仪。现在这些人都这样吗?要大家给自己答案,却不把解决告诉大家。足见人品!
评论
2024-08-06
@LcwSwust :我才发现他发的工程,原来还以为是乱发一气的。打开一看果然有一个这样名字的文件,我只是从stm32工程里面推导它会有一个这样的文件。因为它们太爱抄了,居然连名字都不会改一下,哎。
已有人回复正确答案,见@yuyy1989 的回复 :hk32f030m_it.c,文件末尾
估计楼主觉得大家都看到答案了,你在5楼有答案、yuyy1989也有答案,楼主发的链接里能下载工程。
赞0
评论
2024-08-06
赞0
第二种是把硬件计数器定义成变量. 计数器可以自增
评论
2024-08-06
赞0
评论
2024-08-06
赞0
评论
2024-08-06
赞0
评论
2024-08-06
@winfpt :楼主应该看到答案了,_it.c里,在文件资源管理器里应该能搜到。要学会搜索。
运行正常
您需要登录后才可以回复 登录 | 注册