4671|4

63

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

程序、断点设置问题 [复制链接]

#include "msp430x54x.h"
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // 停止看门狗
unused_port_init(); // 未使用的IO口初始化
clk_init(); // 时钟系统初始化
//lcd_init(); //液晶初始化
while(1)
{
_DINT(); // 全局中断关闭
KeyScan();
KeyDeal();
//Display();
TxCCTL4 &= ~(CCIFG); // 清除TBCCR4中断标志
_BIS_SR(LPM0_bits + GIE); // 进入低功耗模式0
}
}

/**************************************************/
/* 程序名 : 未使用的IO口初始化 */
/* 作用 : 设置未使用的IO口状态 */
/**************************************************/
void unused_port_init(void)
{
PADIR = 0xFF;
PAOUT = 0;
PASEL = 0;
PBDIR = 0xFFFF;
PBOUT = 0;
PBSEL = 0;
PCDIR = 0xFFFF;
PCOUT = 0;
PCSEL = 0;
PDDIR = 0xFFFF;
PDOUT = 0;
PDSEL = 0;
PEDIR = 0xFFFF;
PEOUT = 0;
PESEL = 0;
P11DIR = 0xFF;
P11OUT = 0;
P11SEL = 0;
PJDIR = 0xFF;
PJOUT = 0;
}

void KeyScan()//按键扫描
{
P8DIR |= 0xf0;//高四位输出低四位输入
P8DIR&=0xf0;
P8OUT = 0x0f;//行线置低
if(P8IN&0x0f!=0x0f)//这里可以设置断点,if里面的就设不了断点
{

key_count++; //按键去抖
if(key_count==50)
{
key_count=0;
key_value=P8IN&0x0f;
switch(key_value)
{
case 0x0e: key_count1=1;break; //列检测
case 0x0d: key_count1=2;break;
case 0x0b: key_count1=3;break;
case 0x07: key_count1=4;break;
default:break;
}
P8OUT = 0xef;
key_value=P8IN&0x0f;
if(key_value!=0x0f)
key_count2=12;
P8OUT = 0xdf;
key_value=P8IN&0x0f;
if(key_value!=0x0f)
key_count2=8;
P8OUT = 0xbf;
key_value=P8IN&0x0f;
if(key_value!=0x0f)
key_count2=4;
P8OUT = 0x7f;
key_value=P8IN&0x0f;
if(key_value!=0x0f)
key_count2=0;
key=key_count1+key_count2;
}
}
}

void KeyDeal()
{
switch(key)
{
case 1: //录音
voice_record();
key=0;break;
case 2: //回放
voice_playback();
key=0;break;
case 3: //暂停录音
//voice_stop_record();
key=0;break;
default:break;
}
}
/**************************************************/
/* 程序名 : 系统时钟初始化子程 */
/* 作用 : MCLK = SMCLK = DCO = 16M */
/* ACKL <-- XT1 = 32768 */
/**************************************************/
void clk_init(void)
{
P7SEL |= BIT0 + BIT1; // IO口设置为外部晶振
UCSCTL1 = DCORSEL_5; // 选择DCO的范围
UCSCTL2 = 374; // 设置DCO频率为16M
// 设置MCLK = DCOC,MCLK =DCO,ACLK=XT1
UCSCTL4 = SELM_3 + SELA_0 + SELS_3;
while (SFRIFG1 & OFIFG) // 清除OFIFG,和XT1OFFG ,DCOFFG
{
UCSCTL7 &= ~(XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG;
}
}
程序我下到开发板里,想验证一下我写的4X4按键里正不正确,却在按键扫描程序设置不了断点,我先问一下是程序问题呢,还是软件问题啊????????

4x4.jpg (168.82 KB, 下载次数: 0)

4x4.jpg

最新回复

学习了  详情 回复 发表于 2011-8-23 10:16
 
点赞 关注

回复
举报

121

帖子

0

TA的资源

纯净的硅(中级)

沙发
 

回复 楼主 merlong 的帖子

硬件的原理图没有问题,不知道程序跑起来键盘能正常工作吗,有时断点也要涉及到相关操作的。
 
个人签名很高兴来到EEW。希望和大家相互学习,共同进步!
 

回复

69

帖子

0

TA的资源

纯净的硅(初级)

板凳
 

无法设置断点有几种情况比较常见:

1. 程序跑飞

2. 所设置断点部分代码,没有被linked.

3. IDE允许断点数目有限,所以没有更多断点支持。

4. 程序代码的那一句代码被优化掉了。

 

可以查查看程序看,希望对你有帮助。

 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

4
 
谢谢啊
 
 
 

回复

1万

帖子

16

TA的资源

版主

5
 

回复 板凳 Main函数 的帖子

学习了
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表