4504|10

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F5529A如何操作内部寄存器? [复制链接]

请问程序如何读取内部寄存器的数据?

现在想做一个电子秤,将ADC转换的结果显示到1602上,但是读不到寄存器ADC12MEM0的数据,求大神指教!

程序是这么写的:


void main( void )

{



  WDTCTL = WDTPW + WDTHOLD;

  LCD_Init();

  char *ptr ;

ptr=(*(volatile unsigned char *))0x7020u; //第一个ADC存储器MEM0的地址

    Dogs102x6_stringDrawXY(2,10,"Press the key to initialize!",0);

  Dogs102x6_stringDrawXY(8,33,"The Weight Is:",0);

  Dogs102x6_stringDrawXY(20,49,ptr,0);

  Dogs102x6_stringDrawXY(85,50,"g",0);

  while (1);

}


这句话报了错,错误如下:





求问该如何解决?要怎么才能读取内部寄存器的内容呢?

我刚刚接触单片机,因为要做项目有很多愚蠢的问题,希望大家多多鞭策我,谢谢!

另外还希望这个显示程序能够通过ADC的转换完毕的信号实现中断的功能,请问是把这个显示程序写在中断向量中吗?

谢谢!

QQ图片20150709201042.jpg (66.62 KB, 下载次数: 2)

QQ图片20150709201042.jpg

最新回复

LMP3是说MCU进入低功耗模式,这个时候所有的管脚保持进入前的状态。 但是你的设计中明显LCD是耗电大户,那么你需要在进入LPM3之前先改变IO状态,将LCD关掉,再进入LPM3模式,进一步降低系统功耗。  详情 回复 发表于 2015-7-12 01:03
 
点赞 关注

回复
举报

578

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
我也不是很懂,不过,从楼主贴出来的代码中没有看到ADC采集的程序,又怎么会有数据呢,而且寄存器的地址和别名的映射不是已经在器件的头文件中定义过了吗,直接使用别名进行操作就行了
 
个人签名刻苦学习,共同进步
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
迈尔风随 发表于 2015-7-9 20:55
我也不是很懂,不过,从楼主贴出来的代码中没有看到ADC采集的程序,又怎么会有数据呢,而且寄存器的地址和 ...

这个是两部分,就是我只负责后续的处理,前面ADC是另一个人在做。所以没有写哈~
如果知道了寄存器的别名是ADC12MEM0,该怎么操作才能取数据出来呢?
谢谢啦

点评

dat = ADC12MEM0;就可以了  详情 回复 发表于 2015-7-9 21:51
 
 
 

回复

578

帖子

0

TA的资源

纯净的硅(初级)

4
 
SYW 发表于 2015-7-9 13:20
这个是两部分,就是我只负责后续的处理,前面ADC是另一个人在做。所以没有写哈~
如果知道了寄存器的别名 ...

dat = ADC12MEM0;就可以了
 
个人签名刻苦学习,共同进步
 
 

回复

155

帖子

1

TA的资源

一粒金砂(中级)

5
 
为什么不是这样:
ptr=(volatile unsigned char *)0x7020u
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

6
 
实现什么中断?你要做电子秤的话应该会用到两个中断,一个是按键中断,按下按钮,电子秤显示数值。第二个是时间中断,显示3s内无任何操作则430进入低功耗模式。不知道我理解的对不对?
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

7
 
msp430_now 发表于 2015-7-10 03:26
实现什么中断?你要做电子秤的话应该会用到两个中断,一个是按键中断,按下按钮,电子秤显示数值。第二个是 ...

谢谢,其实差不多啦,我的想法是直接在ADC转换的中断响应里把显示数值的部分加上去,同时语音芯片报出读数。做完这些之后再进行时间中断,那么这个时间中断就是嵌套咯?
问题是:
第一,语音芯片需要一个使能信号,本来想用ADC转换完成的信号做它的使能,但是MSP430的这个完成信号是怎么取出来的?能否从某个端口输出到外部的语音芯片呢?
第二,嵌套的中断除了需要重新打开总中断(_EINT(); )外,还需要什么命令呢?又该如何返回到最开始的状态呢?
谢谢了!这是第一次接触单片机,学习的时间又很短,让你见笑啦

点评

可以的,你可以使用callback,一旦你的adc得到了正确的值,就呼叫语音芯片报值,同时产生一个enable。 你不用使用循环嵌套,timer的中断可以作为计时器使用,在某个时间节点后,发生变化,这个应该会很容易实现。  详情 回复 发表于 2015-7-11 03:41
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

8
 
迈尔风随 发表于 2015-7-9 21:51
dat = ADC12MEM0;就可以了

==是的呢,例程里看到了。谢谢啦
 
 
 

回复

35

帖子

0

TA的资源

一粒金砂(中级)

9
 
SYW 发表于 2015-7-10 09:39
谢谢,其实差不多啦,我的想法是直接在ADC转换的中断响应里把显示数值的部分加上去,同时语音芯片报出读 ...

可以的,你可以使用callback,一旦你的adc得到了正确的值,就呼叫语音芯片报值,同时产生一个enable。
你不用使用循环嵌套,timer的中断可以作为计时器使用,在某个时间节点后,发生变化,这个应该会很容易实现。

点评

SYW
好的,谢谢。我去查查callback功能。还有想问一下,关闭显示屏需要的是哪一种模式呢?LMP3吗?但是进入后貌似显示屏并没有关闭,还是有文字显示的。 谢谢啦  详情 回复 发表于 2015-7-11 14:42
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

10
 
msp430_now 发表于 2015-7-11 03:41
可以的,你可以使用callback,一旦你的adc得到了正确的值,就呼叫语音芯片报值,同时产生一个enable。
...

好的,谢谢。我去查查callback功能。还有想问一下,关闭显示屏需要的是哪一种模式呢?LMP3吗?但是进入后貌似显示屏并没有关闭,还是有文字显示的。
谢谢啦

点评

LMP3是说MCU进入低功耗模式,这个时候所有的管脚保持进入前的状态。 但是你的设计中明显LCD是耗电大户,那么你需要在进入LPM3之前先改变IO状态,将LCD关掉,再进入LPM3模式,进一步降低系统功耗。  详情 回复 发表于 2015-7-12 01:03
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

11
 
SYW 发表于 2015-7-11 14:42
好的,谢谢。我去查查callback功能。还有想问一下,关闭显示屏需要的是哪一种模式呢?LMP3吗?但是进入后 ...

LMP3是说MCU进入低功耗模式,这个时候所有的管脚保持进入前的状态。
但是你的设计中明显LCD是耗电大户,那么你需要在进入LPM3之前先改变IO状态,将LCD关掉,再进入LPM3模式,进一步降低系统功耗。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表