打印

变量不用计算就可以自增吗?

[复制链接]
6578|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
winfpt|  楼主 | 2024-8-6 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下边是航顺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 */








我是新人,还没有家园币,暂时还没法设置悬赏,实在不好意思,麻烦大家了,多谢赐教!

使用特权

评论回复

相关帖子

沙发
LcwSwust| | 2024-8-6 12:44 | 只看该作者
运行正常吗?工程传上来

使用特权

评论回复
评论
LcwSwust 2024-8-6 14:24 回复TA
@winfpt :楼主应该看到答案了,_it.c里,在文件资源管理器里应该能搜到。要学会搜索。 
winfpt 2024-8-6 13:21 回复TA
运行正常 
板凳
yuyy1989| | 2024-8-6 13:25 | 只看该作者
在定时器中断函数里自增的

使用特权

评论回复
评论
yuyy1989 2024-8-6 16:31 回复TA
@winfpt :hk32f030m_it.c,文件末尾 
winfpt 2024-8-6 16:29 回复TA
没找到定时器终端函数,在哪个文件的哪个位置? 
地板
winfpt|  楼主 | 2024-8-6 13:33 | 只看该作者

变量不用计算就可以自增吗?

https://bbs.21ic.com/forum.php?mod=attachment&aid=MTk0Mjg0MnxmOTQwODc5OHwxNzIyOTIyMjc5fDI4MzA3MDB8MzIzNjEzMg%3D%3D

使用特权

评论回复
5
春风路过| | 2024-8-6 13:35 | 只看该作者
这个真没必要隐藏,在"hk32f030m_it.c"文件中应该有。否则就是做成汇编了。基本没可能这么恶搞。

使用特权

评论回复
6
icecut| | 2024-8-6 15:27 | 只看该作者
2 种方式, 一种是你没找到,中断里面自增.
第二种是把硬件计数器定义成变量. 计数器可以自增

使用特权

评论回复
7
winfpt|  楼主 | 2024-8-6 16:59 | 只看该作者

变量不用计算就可以自增吗?

已找到答案,多谢大家不吝赐教!

使用特权

评论回复
8
春风路过| | 2024-8-6 17:19 | 只看该作者
winfpt 发表于 2024-8-6 16:59
已找到答案,多谢大家不吝赐教!

要把答案分享给众人,基本的论坛礼仪。现在这些人都这样吗?要大家给自己答案,却不把解决告诉大家。足见人品!

使用特权

评论回复
评论
春风路过 2024-8-7 15:06 回复TA
@LcwSwust :我才发现他发的工程,原来还以为是乱发一气的。打开一看果然有一个这样名字的文件,我只是从stm32工程里面推导它会有一个这样的文件。因为它们太爱抄了,居然连名字都不会改一下,哎。 
winfpt 2024-8-6 22:46 回复TA
已有人回复正确答案,见@yuyy1989 的回复 :hk32f030m_it.c,文件末尾 
LcwSwust 2024-8-6 20:56 回复TA
估计楼主觉得大家都看到答案了,你在5楼有答案、yuyy1989也有答案,楼主发的链接里能下载工程。 
9
丙丁先生| | 2024-8-7 06:08 | 只看该作者
总结来说,time变量的自增是通过定时器中断服务例程实现的,而不是在主循环中直接增加。如果需要查看完整的计时逻辑,需要查看与定时器相关的其他源文件。

使用特权

评论回复
10
forgot| | 2024-8-7 09:01 | 只看该作者
肯定是在定时器的终端里面做的++,找到定时器的中断函数看看,另外告诉你一下在查找的时候要选中工程,不然默认只查找当前文件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝