你描述的要求不是很明了,应该分步描述,每一步的要求分步写出来,大家容易看懂.
明白你的意思了!
只有两个口控制步进电机的话,需要外加步进电机驱动器.
p1.0控制方向,p1.0是1(0)电机向前,p1.0是0(1)步进电机向后
p1.1控制步数和速度,用一个PWM就可以了,直接用定时器来控制.pwm频率越高速度越快,但要用在定时器中断里面计算步进的步数来确定走了多远.
至于你说的中断信号,可以用循环扫描的方法,在程序中扫描输入中断信号,当检测到信号后改变P1.5的电平,即可点亮LED
/*可用于求n个数的中位数*/
#include
#include
using namespace std;
int a[1024], n;
int main () {
while (~scanf ("%d", &n)) {
for (int i = 0; i < n; i ++)
scanf ("%d", &a[i]);
sort(a, a + n);
if (n % 2 == 1)
printf ("%d\n", a[n/2]);
else
printf ("%d\n", (a[n/2 - 1] + a[n/2])/2);
}
return 0;
}
先排序嘛,冒泡,对半什么的方法很多。然后n个找第(n+1)/2个就行了。
欢迎追问~
int median(int a, int b, int c)
{
if(a {
if(belse{return a }
else
{
if(c>a){return a;}//c>a>b
else{return c>b? c: b}//a>c>b: a>b>c
}
}