资源简介
关于FreeCars超声波模块在山外K60库上面的调试程序
代码片段和文件信息
/*!
* COPYRIGHT NOTICE
* Copyright (c) 2013山外科技
* All rights reserved.
* 技术讨论:山外论坛 http://www.vcan123.com
*
* 除注明出处外,以下所有内容版权均属山外科技所有,未经允许,不得用于商业用途,
* 修改内容时必须保留山外科技的版权声明。
*
* @file main.c
* @brief 山外K60 平台主程序
* @author 山外科技
* @version v5.0
* @date 2013-08-28
*/
#include “common.h“
#include “include.h“
uint32 chaoshengboTime=0;//读取到的超声波时间单位微秒
uint32 ABDistance = 0;//换算后的发送接收模块的距离单位毫米
void PORTA_IRQHandler(void); //PORTD端口中断服务函数
void key_handler(void); //按键按下的测试中断服务函数
/*!
* @brief main函数
* @since v5.0
* @note 测试 port 配置功能,需要接串口来看测试效果
按键一端接 PTD7 ,另一端接地
按键按下时,PTD7 接地
按键没有弹起时,PTD7 浮空,因此需要上拉电阻来把电平拉高
*/
//void Pit0Init(void)
//{
// SIM_SCGC6 |= SIM_SCGC6_PIT_MASK;//module clock
// PIT_MCR &= ~PIT_MCR_MDIS_MASK;//pit module enable
// PIT_LDVAL0 = 0x0000FFFF; //
//
// PIT_TFLG0 |= PIT_TFLG_TIF_MASK;//clear by writing 1
// PIT_TCTRL0 |= PIT_TCTRL_TIE_MASK;//Enable interrupt
// PIT_TCTRL0 |= PIT_TCTRL_TEN_MASK;//enable the timerrun
//}
/*!
* @brief PORTD端口中断服务函数
* @since v5.0
*/
void PORTA_IRQHandler(void)
{
uint8 n = 0; //引脚号
n = 25;
if(PORTA_ISFR & (1 << n)) //PTD7 触发中断
{
PORTA_ISFR = (1 << n); //写1清中断标志位
// printf(“\nOK!\n“);
// led (LED0LED_ON);
/* 以下为用户任务 */
/* 以上为用户任务 */
}
if((GPIOA_PDIR & (0x02000000)))//检测到IO口是高电平,那么就是上升沿
{//如果是上升沿中断
// led_turn(LED2); //闪烁 LED0
// printf(“\nstate1!\n“);
PIT_TCTRL0 &= ~PIT_TCTRL_TEN_MASK;//停止定时器
PIT_LDVAL0 = 0xFFFFFFFF;//32位定时器,装最大值即可
PIT_TCTRL0 |= PIT_TCTRL_TEN_MASK;//启动定时器
}
else
{
// led_turn(LED3); //闪烁 LED0
// printf(“\nstate2!\n“);
chaoshengboTime = (0xFFFFFFFF - PIT_CVAL0)/48;//50M总线时钟,计算得到时间,单位是微秒
ABDistance = chaoshengboTime * 340/1000;//一秒钟的声音速度假设为340米,由于chaoshengboTime单位是微秒,/1000后得到单位是ms
PIT_TCTRL0 &= ~PIT_TCTRL_TEN_MASK;//停止定时器
// printf(“time:%d\n“chaoshengboTime);
// printf(“distance:%d\n“ABDistance);
}
}
/*!
* @brief PIT0中断服务函数
* @since v5.0
*/
void PIT0_IRQHandler(void)
{
led_turn(LED0); //闪烁 LED0
PIT_Flag_Clear(PIT0); //清中断标志位
}
void PIT3_IRQHandler(void)
{
// printf(“time:%d\n“chaoshengboTime);
printf(“distance:%d\n“ABDistance);
PIT_Flag_Clear(PIT3); //清中断标志位
}
/*!
* @brief 按键按下的测试中断服务函数
* @since v5.0
*/
void key_handler(void)
{
printf(“\n按下按键\n“);
}
void main()
{
port_init(PTA25 ALT1 | IRQ_EITHER | PULLUP ); //初始化 PTD7 管脚,复用功能为GPIO ,跳变沿触发中断,上拉电阻
set_vecto
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-20 18:25 超声波测试程序\
目录 0 2015-05-23 16:51 超声波测试程序\App\
目录 0 2015-05-23 16:20 超声波测试程序\App\Inc\
文件 571 2015-05-21 11:06 超声波测试程序\App\Inc\include.h
文件 4159 2015-05-23 16:20 超声波测试程序\App\Inc\MK60_conf.h
文件 914 2014-10-06 04:14 超声波测试程序\App\Inc\MK60_it.h
文件 5997 2015-05-23 16:20 超声波测试程序\App\Inc\PORT_cfg.h
文件 808 2015-04-30 20:19 超声波测试程序\App\Inc\VCAN_OLED.h
文件 16055 2015-04-17 19:44 超声波测试程序\App\Inc\VCAN_OLEDFont.h
文件 4158 2015-05-23 16:51 超声波测试程序\App\main.c
文件 11533 2014-10-04 02:25 超声波测试程序\App\MK60_conf.c
文件 463 2014-10-06 04:15 超声波测试程序\App\MK60_it.c
文件 7444 2015-04-30 20:19 超声波测试程序\App\VCAN_OLED.c
目录 0 2015-05-20 16:13 超声波测试程序\Board\
目录 0 2015-05-20 16:13 超声波测试程序\Board\inc\
文件 943 2015-03-24 12:35 超声波测试程序\Board\inc\VCAN_computer.h
文件 2087 2014-10-09 01:07 超声波测试程序\Board\inc\VCAN_key.h
文件 962 2014-10-02 15:27 超声波测试程序\Board\inc\VCAN_LED.H
目录 0 2015-05-20 16:13 超声波测试程序\Board\src\
文件 2990 2015-03-24 12:14 超声波测试程序\Board\src\VCAN_computer.c
文件 7526 2014-10-30 23:17 超声波测试程序\Board\src\VCAN_key.c
文件 2046 2015-05-20 13:26 超声波测试程序\Board\src\VCAN_LED.C
目录 0 2015-05-20 16:13 超声波测试程序\Chip\
目录 0 2015-05-20 16:13 超声波测试程序\Chip\inc\
文件 25889 2015-02-04 22:09 超声波测试程序\Chip\inc\common.h
目录 0 2015-05-20 16:13 超声波测试程序\Chip\inc\IAR\
文件 304 2013-09-29 12:37 超声波测试程序\Chip\inc\IAR\iar.h
文件 895 2014-10-04 02:25 超声波测试程序\Chip\inc\IAR\system_MK60DZ10.h
目录 0 2015-05-20 16:13 超声波测试程序\Chip\inc\kinetis\
文件 778106 2013-10-08 15:55 超声波测试程序\Chip\inc\kinetis\MK10DZ10.h
文件 809599 2013-10-08 15:55 超声波测试程序\Chip\inc\kinetis\MK20DZ10.h
............此处省略231个文件信息
评论
共有 条评论