找回密码
 立即注册

QQ登录

只需一步,快速开始

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

有单片机程序问题请教一下大佬

[复制链接]
跳转到指定楼层
楼主
ID:76027 发表于 2024-10-30 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个kill 数据从哪儿来的。
#include <at89x51.h>
#include <stdio.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

void calc();
void pll(unsigned long);

ulong rcdata,nadata,sun,kill;

sbit data=p2^2;
sbit clk=p2^1;
sbit le=p2^0;

void calc()
{
     uchar a,cs;
    uint n,r;
     r=1280;
     n=246;
     a=12;
     cs=6;//cs=l;lds=h;fc=h;sw=l;
     rcdata=cs;
     rcdata=rcdata<<14;
     rcdata=rcdata+r;
     rcdata=rcdata<<1;
     rcdata=rcdata+1;
  nadata=n;
  nadata=nadata<<7;
  nadata=nadata+a;
  nadata=nadata<<1;
}

void pll (ulong kill)//msb first
{
     uchar i;
     sun=0x40000;
     for(i = 0; i < 19; i++)
     {
           clk=0;
          if(kill & sun)   //这个kill数据从哪里来的
           {
                 data=1;
           }
           else
           {
                 data=0;
           }
           clk=1;
           sun=sun>>1;
     }
     clk=0;
     data=0;
     le=1;
     le=0;

}

void main(void)
{
while(1)
{
  le=0;
  clk=0;
  data=0;
           calc();
           pll(rcdata);  
           pll(nadata);
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:857072 发表于 2024-10-30 16:09 来自手机 | 只看该作者
void pll (ulong kill)//msb
回复

使用道具 举报

板凳
ID:857072 发表于 2024-10-30 16:10 来自手机 | 只看该作者
void pll (ulong kill)不就是这个函数的参数吗调用这个函数的时候直接传入数据了
回复

使用道具 举报

地板
ID:1109793 发表于 2024-10-30 16:10 | 只看该作者
当然是函数的参数传递进来的啊。不过全局里面也有一个,不建议这样搞,全局和局部用一个名字。
回复

使用道具 举报

5#
ID:1121801 发表于 2024-10-30 16:34 | 只看该作者
长整型参数,不赋值时为0.程序中作为子程序,调用时直接对长整型赋值后运行子程序。
回复

使用道具 举报

6#
ID:161164 发表于 2024-10-30 16:39 | 只看该作者
calc()里计算出rcdata和nadata
然后传参进pll()函数对kill赋值

代码开头创建的kill用不上
回复

使用道具 举报

7#
ID:76027 发表于 2024-10-30 21:03 | 只看该作者
感谢各位大佬,是通过 pll(rcdata);   pll(nadata); 对kill赋值吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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