找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C语言语法错误main.c(202): error C141: syntax error near 'else', expected '__asm'

[复制链接]
跳转到指定楼层
楼主
ID:289218 发表于 2022-3-30 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教:语法错误的处理
各位大咖:
       我写了一段定时器中断处理程序,编译过程中提示语法错误,把else这段修改、重写均提示错误,删掉后就没有错误,搞不懂是哪儿错误,麻烦高手指点一下,谢谢!

单片机程序代码:
void Timer0_Routine() interrupt 1                                                                                                                        //优先级:0-EX0/1-T0/2-EX1/3-T1/4-ES
        {
                if(Keyer-- != 0);                                                                                        //定时是否结束
                        {
                                TH0 = (65536 - 50000) / 256;                        //设置定时初始值高8位
                                TL0 = (65536 - 50000) % 256;                        //设置定时初始值低8位
                        }

                else
                        {
                                TF0 = 0;                                                                                                        //清除TF0标志
                                TR0 = 0;                                                                                                        //关闭定时器0
                                ET0 = 0;                                                                                                        //关闭定时器0中断
                                KeyerFlag = 1;                                                                                //超时标识置位
                        }
        }


错误提示:
main.c(202): error C141: syntax error near 'else', expected '__asm'
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:121859 发表于 2022-3-30 16:58 | 只看该作者
if(Keyer-- != 0);    这里去掉分号就可以了。
回复

使用道具 举报

板凳
ID:415064 发表于 2022-3-30 17:08 | 只看该作者
你看这个else是不是悬挂了

if (Keyer-- != 0)
    ; //定时是否结束
{
    TH0 = (65536 - 50000) / 256; //设置定时初始值高8位
    TL0 = (65536 - 50000) % 256; //设置定时初始值低8位
}
else
{
    TF0 = 0;       //清除TF0标志
    TR0 = 0;       //关闭定时器0
    ET0 = 0;       //关闭定时器0中断
    KeyerFlag = 1; //超时标识置位
}
回复

使用道具 举报

地板
ID:289218 发表于 2022-3-30 17:18 | 只看该作者
zhxiufan 发表于 2022-3-30 16:58
if(Keyer-- != 0);    这里去掉分号就可以了。

感谢指导,已经可以编译了~
回复

使用道具 举报

5#
ID:289218 发表于 2022-3-30 17:19 | 只看该作者
wojiaoguogai 发表于 2022-3-30 17:08
你看这个else是不是悬挂了

if (Keyer-- != 0)

感谢指导~
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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