如上问,程序如下,程序本身好使,能循迹,把他写成子程序给其他程序调用时候出现问题:调用xunji那块不好使,而调用其他转弯啦,直走啦,停止啦,都可以,为啥循迹不好使呢,请帮我分析一下,谢谢,可以加分xunji()本来是main()的,然后while(1)我也去掉了。。
字数有限制,只能上传一部分程序
// #include <AT89X52.h>
/************************************************************************/
void delay1(unsigned int k) //延时函数
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
void run(void) //前进函数
{
push_val_left =2; //PWM 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度
push_val_right =2; //PWM 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度
Left_moto_go ; //左电机前进
Right_moto_go ; //右电机前进
}
/***************************************************/
void xunji(void)
{
TMOD=0X01;
TH0= 0XF8; //1ms定时
TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
//while(1) /*无限循环*/
//四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1
switch(P0&0x0f)
{
case 0x00: // 全部没有压线,直转
run();
break;
case 0x01: // 右压线,左转
left();
delay1(2);
break;
case 0x02: // 右压线,左转
left();
delay1(2);
break;
case 0x04: // 左压线,右转
right();
delay1(2); //转向延时
break;
case 0x08: // 左压线,右转
right();
delay1(2); //转向延时
break;
case 0x0f: //
stop();
delay1(6);
break;
default:
break;
}
}
大致看了下,LZ的意思是想在自己的main()函数里调用xunji函数,然后本来xunji函数有个while死循环的,你不想再子函数里加,是不?
如果是这样的话,你可以在你main()函数里使用while循环。类似这样:
int main(void)或者你最好自己改下子函数的逻辑咯。
有声明了的,我用#include,我也知道是不能有两个main(),可是在改这个被调用的子程序,就一直不好使,为啥呢,子程序加上while(1)好使,可是我不想要他在这里死循环,咋改呢?
追答在main()所在的文件下声明你要调的子函数的文件名 然后再在main()中调用子函数
本回答被提问者采纳c语言子程序的写法,子函数main函数写哪,还用写吗
1、子程序不用写main函数。2、每个程序只有一个main函数。(如果在类里看到了main函数那个不是通常意义上的main函数。只是一个名字叫做main的自定函数)。main函数会接受系统传入的参数。参数是固定的。(但是类里如果见到main函数,肯定是自己定义的参数)。
C语言中主函数和子函数的问题
小程序,无所谓,子函数可以写在前面。大程序,子函数写在后面为好,前面只需写子函数原型。程序很大时,子函数可以单独写在分开的文件中,主函数前面写子函数原型,或把子函数原型写入头文件,include 进来。程序执行总是从主函数开始执行,主函数写在前面,看起来方便,程序的主要思路,解决问题的步骤,...
C语言,子函数在主函数的后面,问:我把子函数声明写在main函数的...
C语言,子函数在主函数的后面,就需要把子函数声明写在main函数的前面;如果子函数在主函数的前面,子函数就不需要声明,在main函数里可以直接调用。
单片机,c语言编写程序,现在是大四学生,一般我所需要的程序200行左右...
一般来说先写子函数,而且子函数中被调用的的子函数最好先写,不然会报错。另外也可以事先申明一下某个函数,那么此函数就可以放在此函数被调用的函数后面写。
C语言 子函数和主函数的放置前后顺序区别?
先回答下第一个问题,子函数的实现方法可以放在使用它的主函数或者其它子函数后面,但是你的定义一定要在使用它之前;不然编译器怎么知道你用的函数square是什么,这就是我们经常包含头文件的一个目的,头文件是一些函数定义或者预编译命令。修改是在#include<stdio.h>后面加 int square(int num);第二...
c语言程序由哪三部分组成?
c语言程序由头文件、main函数、子函数和结构体组成的。1、头文件:头文件包含程序中要调用的库函数,程序中调用了某个库函数,程序开始时必须写上“#include或#include“头文件名”。2、main函数:程序的主体部分,实现算法的主干。3、子函数:main函数中用到的方法,为避免main函数过长引起错误,会把...
c语言中是不是必须要有main函数?
C语言中的主函数固定名为:main(),每个系统中必须有一个,且只能有一个。它 是第一个运行的函数。一般情况下,main()写在文件的最后面,其他被调用的函数放在前面,这样定义函数之前可以不加声明,如果放在主函数之后,则必须先声明,再定义,再被调用。
C语言流水灯编程 哪几行主函数 哪几行是子函数 分别用什么 语句 和...
C语言只有一个入口函数 一般情况下是 main函数,程序是从 main 函数的第一行开始执行的,其他的都是子函数,main函数是由编译器提供的启动初始化库调用的,其他子函数是由main函数直接或者间接调用的。还有一种比较特殊的函数, T0_TNT() 你可能注意到 后边的 interrupt 1, 这个函数是中断处理函数,...
c语言怎么编写子程序?
C语言 把别的计算机语言中称“函数”或称“子程序”的程序块 统称为 “函数”,没有术语“子程序”。别的计算机语言中称为“子程序”的程序块,C语言叫 void 型 函数。C语言 函数定义 出现在 main() 函数 以后的,则要在 main() 函数 以前 加写 函数原型声明。例如:计算10个数的平均值,最...
c语言中main函数的位置可以任意吗?
c语言中main函数的位置可以任意位置。在执行一个c语言编写的程序时,main函数就相当于是执行程序的入口。只要是没有语法和逻辑上的错误,main函数可以放在任意位置。\\x0d\\x0aC语言不限定函数源代码在源文件中的位置,但是函数内的标识符同函数外的标识符一样也必须满足使用的标识符先声明后引用的原则...