注册 登录
查看: 547|回复: 15

[K60] K60调试问题

[复制链接]
发表于 2014-3-27 21:29:49 | 显示全部楼层 |阅读模式

主函数里面就写了一点东西,但是调试时会出现如上情况,程序无法正常执行,请问是怎么回事啊?

/******************** (C) COPYRIGHT 2011 山外嵌入式开发工作室 ********************
* 文件名       :main.c
* 描述         :EXTI外部中断实验
*
* 实验平台     :山外kinetis开发板
* 库版本       :
* 嵌入系统     :
*
* 作者         :山外嵌入式开发工作室
* 淘宝店       :http://firestm32.taobao.com
* 技术支持论坛 :http://www.ourdev.cn/bbs/bbs_list.jsp?bbs_id=1008
**********************************************************************************/


#include "common.h"
#include "include.h"


/*************************************************************************
*                             山外嵌入式开发工作室
*                           EXTI外部中断实验综合测试
*
*  实验说明:山外EXTI外部中断实验
*            利用PTA27产生方波,触发 PTA26 外部中断,中断服务函数闪烁LED0。
*
*            PTA26 是 PORTA 端口 ,外部触发中断是PORTA中断:PORTA_IRQHandler
*            我们需要在 isr.c 里编写 PORTA_IRQHandler 中断服务函数
*            在 isr.h 里面重新宏定义中断号,重映射中断向量表里的中断函数地址
*
*  实验操作:用跳线短接 PTA27 和 PTA26
*
*  实验效果:LED0闪烁(中断服务函数里控制)
*
*  实验目的:测试 exti_init 函数
*
*  修改时间:2012-2-28     已测试
*
*  备    注:山外Kinetis开发板的 LED0~3 ,分别接PTD15~PTD12 ,低电平点亮
*************************************************************************/

void main()
{
    DisableInterrupts;
    uart_init(UART0,9600);


    gpio_init(PORTC,0,GPO,1);
    gpio_init(PORTC,2,GPO,1);
    gpio_init(PORTB,21,GPO,1);
    gpio_init(PORTB,23,GPO,1);


    gpio_init(PORTB,10,GPI,1);


    EnableInterrupts;

    while(1)
    {
      printf("%d\n\r",gpio_get(PORTB,10));
    }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-3-28 09:22:53 | 显示全部楼层
串口发送时出现进入默认中断,你看看默认中断的中断号是多少。

可能是超频导致不稳定
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 10:25:38 | 显示全部楼层
栾端静 发表于 2014-3-28 09:22
串口发送时出现进入默认中断,你看看默认中断的中断号是多少。

可能是超频导致不稳定

发送卡死了,中断号好像是局部变量,加到watch里看不到数值
我是直接用的山外哥的那个历程里面的,时钟配置都没改
/******************** (C) COPYRIGHT 2011 山外嵌入式开发工作室 ********************
* 文件名       :k60_fire.h
* 描述         :山外开发板配置文件
*
* 实验平台     :山外kinetis开发板
* 库版本       :
* 嵌入系统     :
*
* 作者         :山外嵌入式开发工作室
* 淘宝店       :http://firestm32.taobao.com
* 技术支持论坛 :http://www.ourdev.cn/bbs/bbs_list.jsp?bbs_id=1008
**********************************************************************************/

#ifndef __K60_TOWER_H__
#define __K60_TOWER_H__

#include "mcg.h"

/*************************************************************************
*                             山外嵌入式开发工作室
*
*  功能说明:定义 printf函数 的 串口输出端口 和 串口信息
*  备    注:
*************************************************************************/
#define FIRE_PORT           UART0
#define FIRE_BAUD           9600

/*************************************************************************
*                             山外嵌入式开发工作室
*
*  功能说明:定义芯片型号
*  备    注:
*************************************************************************/
#define CPU_MK60N512VMD100



/*************************************************************************
*                             山外嵌入式开发工作室
*
*  功能说明:定义时钟频率
*  备    注:如果 MCG_CLK_MHZ 定义为 PLLUSR ,则初始化系统时用下面的自定义因子
*************************************************************************/
//#define NO_PLL_INIT
#define K60_CLK             1           // 使用外部时钟参考源
#define REF_CLK             XTAL8       // 没用到,但一些宏定义需要它

#define MCG_CLK_MHZ         PLL200      // 设置时钟频率
#define MAX_BUS_CLK         50         // bus不要超过200M,这里设为100M
#define MAX_FLASH_CLK       25          // flash不能超过32M,这里设为不超过30M

/*********************   自定义 时钟频率 分频因子   ********************/
#include "Fire_kinetis_MCG_CFG.h"   //参考这文件可以 选配 PRDIV、VDIV 。定义MCG分频因子 :
#define PRDIV             11        // MCG_CLK_MHZ = 50u/(PRDIV+1)*(VDIV+24)
#define VDIV              31
#define CORE_DIV          0         //  core = mcg/ ( CORE_DIV  + 1 )
#define BUS_DIV           0         //  bus  = mcg/ ( BUS_DIV   + 1 )
#define FLEX_DIV          0         //  flex = mcg/ ( FLEX_DIV  + 1 )
#define FLASH_DIV         9         //  flash= mcg/ ( FLASH_DIV + 1 )
/***********************************************************************/





#endif /* __K60_TOWER_H__ */


回复 支持 反对

使用道具 举报

发表于 2014-3-28 10:54:33 | 显示全部楼层
neozoic 发表于 2014-3-28 10:25
发送卡死了,中断号好像是局部变量,加到watch里看不到数值
我是直接用的山外哥的那个历程里面的,时钟配置 ...

这个是旧版本的,我对山外哥旧版本的代码不熟悉
回复 支持 反对

使用道具 举报

发表于 2014-3-28 10:55:02 | 显示全部楼层
neozoic 发表于 2014-3-28 10:25
发送卡死了,中断号好像是局部变量,加到watch里看不到数值
我是直接用的山外哥的那个历程里面的,时钟配置 ...

#define MCG_CLK_MHZ         PLL200      // 设置时钟频率


改成 PLL150 试试效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 10:57:04 | 显示全部楼层
栾端静 发表于 2014-3-28 10:54
这个是旧版本的,我对山外哥旧版本的代码不熟悉

新版本在哪儿有啊,网盘上的那份?exe可执行文件?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 10:58:49 | 显示全部楼层
韦嘉淑 发表于 2014-3-28 10:55
#define MCG_CLK_MHZ         PLL200      // 设置时钟频率

只改这一个吗,其他的相关参数需不需要更改?
回复 支持 反对

使用道具 举报

发表于 2014-3-28 11:04:09 | 显示全部楼层
neozoic 发表于 2014-3-28 10:57
新版本在哪儿有啊,网盘上的那份?exe可执行文件?

是啊,exe文件其实是自解压文件,解压后几百M。山外哥是用特殊的压缩软件,很多人电脑打不开,就做成自解压
回复 支持 反对

使用道具 举报

发表于 2014-3-28 11:05:12 | 显示全部楼层
neozoic 发表于 2014-3-28 10:58
只改这一个吗,其他的相关参数需不需要更改?

修改那个,就是把内核频率修改。山外哥的代码是宏观宏定义来指定超频频率的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 11:06:51 | 显示全部楼层
栾端静 发表于 2014-3-28 11:04
是啊,exe文件其实是自解压文件,解压后几百M。山外哥是用特殊的压缩软件,很多人电脑打不开,就做成自解压

哦哦,好的,我试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 11:07:09 | 显示全部楼层
栾端静 发表于 2014-3-28 11:05
修改那个,就是把内核频率修改。山外哥的代码是宏观宏定义来指定超频频率的

我记得以前主频200M很稳定啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 11:31:56 | 显示全部楼层
栾端静 发表于 2014-3-28 11:05
修改那个,就是把内核频率修改。山外哥的代码是宏观宏定义来指定超频频率的

怎么都是一个一个的呀,有没有一个完整的工程啊,包含所有驱动的那种,我对工程不是很了解,不知道怎么移动目录文件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-28 11:33:57 | 显示全部楼层
栾端静 发表于 2014-3-28 11:05
修改那个,就是把内核频率修改。山外哥的代码是宏观宏定义来指定超频频率的

还有就是如果外部中断频率过快,是不是while(1)中的串口发送就不能执行了啊,我接了一个场中断、一个行中断,中断里面就点亮一个led灯,结果while(1)中的东西就不发送了
回复 支持 反对

使用道具 举报

发表于 2014-3-28 11:59:30 | 显示全部楼层
neozoic 发表于 2014-3-28 11:31
怎么都是一个一个的呀,有没有一个完整的工程啊,包含所有驱动的那种,我对工程不是很了解,不知道怎么移 ...

书后例程,每个工程都是完整的,基本上都是main函数和配置文件有点差异而已
前面例程是学习例程
回复 支持 反对

使用道具 举报

发表于 2014-3-28 12:02:44 | 显示全部楼层
neozoic 发表于 2014-3-28 11:33
还有就是如果外部中断频率过快,是不是while(1)中的串口发送就不能执行了啊,我接了一个场中断、一个行 ...

好像没有吧,摄像头就是用到场中断,也是正常发送
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-9 20:00:48 | 显示全部楼层
本帖最后由 neozoic 于 2014-4-9 20:11 编辑
栾端静 发表于 2014-3-28 12:02
好像没有吧,摄像头就是用到场中断,也是正常发送


亲,我用了山外的最新库了,结果下载的时候弹出这个提示,
我用的是MK60DN512ZVLL10的芯片,已经将宏定义改成MK60DZ10了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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