矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yrxinxin

一个闪灯程序不能正常动作

[复制链接]
     
发表于 2021-9-30 16:35:26 | 显示全部楼层
本帖最后由 CXFLBH 于 2021-9-30 16:38 编辑

这个中断可以这样写:
//-----------------------------------------------
//中断2服务程序
void t2int() interrupt 12           //中断入口
{      
        static         Count1=0;          //静态变量计数器1
        static         Count2=0;          //静态变量计数器2
        static         Count3=0;          //静态变量计数器3
                Count1++;          //每次中断计数器加1               
        if(Count1>=40)                   //0.4S翻转
        {
        P3^4=~P3^4;                   //
            Count1=0;              //计数器清零
        }
           if(BIT)
  {
      Count2++;
             if(Count2>=500)                   //50S
          {
        BIT=0;                  //
            Count2=0;              //计数器清零
          }
   }
                        else
                {
              Count3++;
                 if(Count3>=100)                   //10S
               {
             BIT=1;                  //
                 Count3=0;              //计数器清零
               }
                }
  }
先在程序里设一个全局bit,定时器设10mS,通过BIT的翻转来判断输出。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-9-30 16:48:39 | 显示全部楼层
CXFLBH 发表于 2021-9-30 16:35
这个中断可以这样写:
//-----------------------------------------------
//中断2服务程序

能不能帮我重新写一个?我是小白,只会修改,编不了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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