找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1614|回复: 5
打印 上一主题 下一主题
收起左侧

单片机DS1302的程序中加一位,程序是什么意思,看不懂呀,求大神赐教

[复制链接]
跳转到指定楼层
楼主
ID:894870 发表于 2021-4-14 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void set_ds1302time(uchar num,uchar *shi,uchar dat)//调时
{
          if(num == 1)
    {
            *shi+=0x01;//*shi是什么意思
                if((*shi & 0x0f) >= 0x0a
                        *shi = (*shi & 0xf0) + 0x10;
                if(*shi >= dat)
                        *shi = 0;
    }
    else
    {
                if(*shi == 0x00)
                        *shi = dat;
                if((*shi & 0x0f) == 0x00)
                        *shi = (*shi | 0x0a) - 0x10;
                *shi -=0x01 ;
    }  
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:894154 发表于 2021-4-14 16:41 | 只看该作者
*shi+=0x01;
*shi指向的内容加0x01后保存到*shi中
回复

使用道具 举报

板凳
ID:839835 发表于 2021-4-14 16:55 | 只看该作者
void set_ds1302time(uchar num,uchar *shi,uchar dat)//调时
{
          if(num == 1) 参数是1的情况下
    {
            *shi+=0x01;//*shi是什么意思  没进来一次*shi累加一次,就是时间加一小时
                if((*shi & 0x0f) >= 0x0a  //大于等于10小时的话
                        *shi = (*shi & 0xf0) + 0x10; 16小时起算
                if(*shi >= dat)
                        *shi = 0;
    }
    else
    {
                if(*shi == 0x00)
                        *shi = dat;
                if((*shi & 0x0f) == 0x00)
                        *shi = (*shi | 0x0a) - 0x10;
                *shi -=0x01 ;
    }  
}
参数是指针,char*shi,然后*shi+=0x01中的*shi是取指针的值。你可以看看c语言指针
回复

使用道具 举报

地板
ID:887371 发表于 2021-4-14 17:07 | 只看该作者
函数体的*shi和shi[0]等效。可以把函数体中所有*shi替换为shi[0]。
*shi+=0x01;//*shi是什么意思
shi[0]++;
上句和下句等效。
回复

使用道具 举报

5#
ID:894870 发表于 2021-4-14 21:07 | 只看该作者
xunzhaod 发表于 2021-4-14 16:55
void set_ds1302time(uchar num,uchar *shi,uchar dat)//调时
{
          if(num == 1) 参数是1的情况下 ...

可以解析一下后面的程序吗
回复

使用道具 举报

6#
ID:584814 发表于 2021-4-15 11:22 | 只看该作者
看图应该是10进制(常人用的)和16进制(1302内部用的)转换的炫技写法,建议在本坛找个简单的一样用。不过想烧脑或彻底搞明白&|等运算技术,这个例子不错的。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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