OpenEdv-开源电子网

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

如何定时一分钟

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-10-18
在线时间
1 小时
发表于 2018-10-18 22:47:15 | 显示全部楼层 |阅读模式
1金钱
如题,我在做一个智能小车,想让他开启10秒后执行原地转180度指令,但实际他不执行,请各位大佬看看我哪里写错了。
一下是timer。c里的程序
#include "timer.h"
#include "function.h"
//////////////////////////////////////////////////////////////////////////////////  
//±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ;
//ALIENTEK STM32F407¿ª·¢°å
//¶¨Ê±Æ÷ Çý¶¯´úÂë   
//ÕýµãÔ­×Ó@ALIENTEK
//¼¼ÊõÂÛ̳:www.openedv.com
//´´½¨ÈÕÆÚ:2014/5/4
//°æ±¾£ºV1.0
//°æȨËùÓУ¬µÁ°æ±Ø¾¿¡£
//Copyright(C) ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ 2014-2024
//All rights reserved           
//////////////////////////////////////////////////////////////////////////////////   

//ͨÓö¨Ê±Æ÷3Öжϳõʼ»¯
//arr£º×Ô¶¯ÖØ×°Öµ¡£
//psc£ºÊ±ÖÓÔ¤·ÖƵÊý
//¶¨Ê±Æ÷Òç³öʱ¼ä¼ÆËã·½·¨:Tout=((arr+1)*(psc+1))/Ft us.
//Ft=¶¨Ê±Æ÷¹¤×÷ƵÂÊ,µ¥Î»:Mhz
//ÕâÀïʹÓõÄÊǶ¨Ê±Æ÷3!
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///ʹÄÜTIM3ʱÖÓ

  TIM_TimeBaseInitStructure.TIM_Period = arr;  //×Ô¶¯ÖØ×°ÔØÖµ
TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  //¶¨Ê±Æ÷·ÖƵ
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòÉϼÆÊýģʽ
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//³õʼ»¯TIM3

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //ÔÊÐí¶¨Ê±Æ÷3¸üÐÂÖжÏ
TIM_Cmd(TIM3,ENABLE); //ʹÄܶ¨Ê±Æ÷3

NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //¶¨Ê±Æ÷3ÖжÏ
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //ÇÀÕ¼ÓÅÏȼ¶1
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //×ÓÓÅÏȼ¶3
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);

}
//¶¨Ê±Æ÷3ÖжϷþÎñº¯Êý
void TIM3_IRQHandler(void)
{
  static int i=0;
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //Òç³öÖжÏ
{
  
i++;
  if(i>=20)
  {
  turn_left180_Init( );
  }
  
}

TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //Çå³ýÖжϱê־λ
}




以下是主函数程序
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "pwm.h"
#include "encode.h"
#include "motor.h"
#include "function.h"
#include  "sensor.h"
#include "timer.h"
//ALIENTEK ̽Ë÷ÕßSTM32F407¿ª·¢°å ʵÑé0
//STM32F4¹¤³ÌÄ£°å-¿âº¯Êý°æ±¾
//¼¼ÊõÖ§³Ö£ºwww.openedv.com
//ÌÔ±¦µêÆÌ£ºhttp://eboard.taobao.com
//¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾  
//×÷ÕߣºÕýµãÔ­×Ó @ALIENTEK
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  delay_init(168);
   TIM4_ENcoder_Init();
   TIM3_ENcoder_Init();
  
  TIM3_Int_Init(5000-1,8400-1);
while(1)
{

  

if(phqian1==1)
{
  if(phyou1==0&&phyou2==1)
  {
    wt_right_Init();
  }
if(phyou2==1&&phyou1==1)
{
  wt_right_Init();
}
if(phyou2==0&&phyou1==0)
{
  wt_leftm_Init();
}
if(phyou1==1&&phyou2==0)
{
  wt_leftm_Init();
}

}
else
{
  if(tem1==1&&tem2==1&&tem3==1&&tem4==1&&tem5==1)
  {
   wt_leftk_Init();
  }
  else
  {
   stop_Init();
  miehuo_Init();
   
  }
}
}
}



最佳答案

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

http://www.openedv.com/forum.php?mod=viewthread&tid=269085&highlight=%B6%A8%CA%B1%C6%F7%2B%B7%D6%D6%D3 可以参考3楼的做法
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2018-10-18 22:47:16 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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