MSP430技术william hill官网
直播中

MCUQ123

8年用户 6经验值
擅长:可编程逻辑 嵌入式技术 控制/MCU RF/无线
私信 关注
[问答]

单片机两个死循环问题

新人求助:两个流水灯(流水灯1和流水灯2),且都是死循环,两个按键如何来回切换,任意时间随时可以切换,请问程序该怎么设计?现在是这么设计的:按键A是外部中断0,按键B是普通按键,main主程序中有一个死循环(流水灯1),按键A(外部中断0)中有一个死循环(流水灯2),B按键充当了一个复位键的角色,B按键检测到后用三极管触发REST,重新开始执行程序,功能虽然实现了,但感觉不是很完美,哪位朋友有没有更好的思路,谢谢!

回帖(7)

friend0720

2016-5-15 22:59:01
目标功能描述不清,说明你的逻辑思维十分混乱!
举报

MCUQ123

2016-5-15 23:05:46
引用: friend0720 发表于 2016-5-15 22:59
目标功能描述不清,说明你的逻辑思维十分混乱!

两组流水灯,用两个按键来回切换。
举报

friend0720

2016-5-15 23:13:39
main()
{
    while(1)
    {
       按键扫描获取当前流水灯工作状态

        switch(状态)
        {
        case 状态1:
            流水灯a循环工作;
            break;
        case 状态2:
            流水灯b循环工作;
            break;
        default:
            break;
        }
    }
}
举报

friend0720

2016-5-15 23:27:16
流水灯循环工作函数()
{
    static int led;

    led 全灭;

    switch(led)
   {
    case 0:
      点亮 led0;
        break;
    case 1:
        点亮 led1;
       break;
    default:
        led=0;
        break;
    }
    led++;
}
举报

h1654155915.0496

2016-5-16 11:25:54
两个中断吗?
举报

MCUQ123

2016-5-16 14:43:36
引用: friend0720 发表于 2016-5-15 23:27
流水灯循环工作函数()
{
    static int led;

case语句后面是一个函数,好比是带花样的流水灯,是一个死循环,它怎么跳出来?
举报

MCUQ123

2016-5-16 14:57:13
引用: qq905713813 发表于 2016-05-16 11:25
两个中断吗?

现在有两条思路,第一:两个中断改变一个变量值,在主程序中判断变量;第二:给循环体中适当加入键盘扫描,让它随时可能跳出来。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分