新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2018-10-18
- 在线时间
- 1 小时
|
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楼的做法
|