OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4764|回复: 5

开始定义tick_5ms=0,但if(tick_5ms >= 5)中tick_5ms是怎么>=5的?

[复制链接]

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-5-15
在线时间
3 小时
发表于 2016-5-15 15:50:44 | 显示全部楼层 |阅读模式
6金钱
#include "stm32f10x.h"
#include "interface.h"
#include "LCD1602.h"
#include "IRCtrol.h"
#include "motor.h"
#define        IRCOMSize        8
unsigned int speed_count=0;
char front_left_speed_duty=SPEED_DUTY;
char front_right_speed_duty=SPEED_DUTY;
char behind_left_speed_duty=SPEED_DUTY;
char behind_right_speed_duty=SPEED_DUTY;

unsigned char tick_5ms = 0;//5ms 计数器,作为主函数的基本周期
unsigned char tick_1ms = 0;//1ms 计数器,作为电机的基本计数器
unsigned char tick_200ms = 0;//刷新显示

char ctrl_comm = COMM_STOP;/
unsigned char continue_time=0;


int main(void)
{
        #ifdef DEBUG
        debug();
        #endif
        delay_init();
        GPIOCLKInit();
        UserLEDInit();
        LCD1602Init();
        IRCtrolInit();
        TIM2_Init();
        MotorInit();
        IRIntIsr( );
         while(1)
         {         
                                if(tick_5ms >= 5)//5ms
                        {
                                tick_5ms = 0;
                                tick_200ms++;
                                if(tick_200ms >= 40)
                                {
                                        tick_200ms = 0;
                                        LEDToggle(LED_PIN);
                                }
                               
                                continue_time--;//200ms ÎT½óêÕÖ¸áî¾íí£3μ
                                if(continue_time == 1)
                                {
                                        continue_time = 0;
                                        CarStop();
                                }
                                //do something
                                if(ir_rec_flag == 1)//½óêÕμ½oìíaDÅoÅ
                                {
                                        ir_rec_flag = 0;
                                        switch(ctrl_comm)
                                        {
                                                case COMM_UP:    CarGo();break;
                                                case COMM_DOWN:  CarBack();break;
                                                case COMM_LEFT:  CarLeft();break;
                                                case COMM_RIGHT: CarRight();break;
                                                case COMM_STOP:  CarStop();break;
                                                default : break;
       
                                        }
                                        LCD1602WriteCommand(ctrl_comm);
                                }
                        }
                       
         }
               
       
       
}

最佳答案

查看完整内容[请看2#楼]

中断啊 [mw_shl_code=applescript,true]TIM2_IRQHandler[/mw_shl_code]这个函数里边,你不用发出来 你自己看看就能找得到。我估计是这样的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-5-15 15:50:45 | 显示全部楼层
灬哈哈 发表于 2016-5-15 16:09
static void NVIC_TIM2Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

中断啊  [mw_shl_code=applescript,true]TIM2_IRQHandler[/mw_shl_code]这个函数里边,你不用发出来 你自己看看就能找得到。我估计是这样的
我有故事,你有酒吗
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-5-15 15:54:00 | 显示全部楼层
看tim2中断函数
我有故事,你有酒吗
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-5-15
在线时间
3 小时
 楼主| 发表于 2016-5-15 16:09:22 | 显示全部楼层

static void NVIC_TIM2Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

    /* Set the Vector Table base address at 0x08000000 */
    //NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);

    /* Enable the TIM5 gloabal Interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&NVIC_InitStructure);
}


void TIM2_Init(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

    /* TIM2 clock enable */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

    /* Time base configuration */
    TIM_TimeBaseStructure.TIM_Period = (100 - 1);//10kHz
    TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);//1MHz
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
  
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

    /* TIM5 enable counter */
    TIM_Cmd(TIM2, ENABLE);  

    NVIC_TIM2Configuration();
}
是这个么?
回复

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-5-15
在线时间
3 小时
 楼主| 发表于 2016-5-15 16:18:38 | 显示全部楼层
来俩不甜的 发表于 2016-5-15 16:14
中断啊  这个函数里边,你不用发出来 你自 ...

找到了,谢谢
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-9-27
在线时间
2 小时
发表于 2020-11-11 11:14:29 来自手机 | 显示全部楼层
灬哈哈 发表于 2016-5-15 16:18
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,这个是慧净的车的吧,能不能发下你在哪个文件找到的,这个也困扰了我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表