找回密码
 注册
关于网站域名变更的通知
查看: 151|回复: 4
打印 上一主题 下一主题

单片机C语言怎样分解变量?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-7 13:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
以前这样可以的
) i) m+ E/ c7 |. e" s' suint bnm;                //16位变量
& V# S) z0 Q* [+ u/ `uchar bnmh,bnml;   //变量的高8位,低8位
4 c( }! I" @# f: _! U4 d9 Bvoid main()
" _2 T" ~  t! h8 I{- k3 ?1 ]. Y- {% [2 D
   bnmh=bnm/256;! i9 q( @7 {9 i; {
   bnml=bnm%256;  E- F, A2 l6 L7 W
   bnm=bnmh*256+bnml;+ u, |2 z7 @) [* t. l  F; c3 s
   IapErase(0x0400);             //扇区擦除; ?( Y/ x- L% l  ~6 w+ T9 o
   IapProgram(0x0400,bnmh);    //保存高8位
+ A4 C# @" A8 M   IapProgram(0x0401,bnml);    //保存低8位
8 [4 q$ O. P, ~# S, x  q}4 c! ]8 L/ S. f& @. A; |) o
以前STC15F单片机保存后读出的数正常。现在用STC8G2K64S4,保存读出不正常了。频率提高了,发现要调整的地方都调了。其它功能正常,就这个16位变量结果不对。! q' d+ `5 [) H1 U7 D2 p
各位还有其它方法吗?
1 U0 @& m6 Y! {  |
  • TA的每日心情
    慵懒
    2022-1-21 15:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-7-7 14:34 | 只看该作者
    可能是类型转换的问题,试试这样写: " O2 Q: \5 ?3 w5 v4 A/ Q1 @
    5 n; r6 z( y6 }4 Y! v7 G1 x
    bnmh=(uchar)(bnm>>8 &0XFF);7 h& E" \) |- a4 j
    bnml=(uchar)(bnm%256 & 0xFF);
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-7-7 15:06 | 只看该作者
    STC8G2K64S4的EEPROM为IAP类型,应该是存储地址不对
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-7 15:19 | 只看该作者
    显然是两个单片机的IapProgram()不一样导致的。
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2022-7-7 15:46 | 只看该作者
    STC8G2K64S4是IAP型,没有固定EEPROM地址,使用前需要把EEPROM地址定位到用户程序结束后一个扇区和最后一个扇区之间的任意扇区。代码示例:
    ! G' h; P0 W0 V- z6 t        IapErase(0xA800);             //扇区擦除
    5 X- X5 G  d7 D* Z        IapProgram(0xA800,bnm>>8);    //保存高8位
    4 b7 o* w* t9 S9 z        IapProgram(0xA800+1,bnm);    //保存低8位
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-8 20:47 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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