松翰单片机 c语言例程 宏定义出错,松翰单片机 SN8F5702程序例程

该代码段展示了在嵌入式系统中如何实现时间管理与中断处理。`Work_Fun()`和`Time_Fun()`函数分别用于执行周期任务和基准时间更新。定时器中断服务函数`Timer0_ISR()`和`Timer1_ISR()`处理2MS和其它时间间隔的中断。程序还涉及到了LED显示、ADC采样、按键处理等功能,体现了实时系统中时间精确控制的重要性。
摘要由CSDN通过智能技术生成

} Ram_init(); while(1) { if(TimeFlag) { TimeFlag=0; Time_Fun(); //基准时间函数 } _clrwdt(); _nop_(); } }

//*****************************************************************// // 时间走时函数 // //*****************************************************************// void Work_Fun(void) { }

//*****************************************************************// // 时间走时函数 // //*****************************************************************// void Time_Fun(void) { static u8 Time_4ms_Cnt = 0,Time_10ms_Cnt = 0,Time_100ms_Cnt 0,Time_250ms_Cnt = 0; static u8 Buzz_Cnt=0;

//***************充放电判断********************* LedDisplay(); Time_4ms_Cnt ++; if(Time_4ms_Cnt>=2) { Time_4ms_Cnt=0; AD_fun(); } Time_10ms_Cnt ++; if(Time_10ms_Cnt>=5) { Time_10ms_Cnt=0; KeyDataProcess(); }

=

Time_100ms_Cnt++; if(Time_100ms_Cnt>=50) { Work_Fun(); Time_100ms_Cnt=0; } }

//*****************************************************************// // 中断函数 // //*****************************************************************// void Timer0_ISR(void) interrupt ISRTimer0 // Vector @ 0x0B { static u8 Time2MS = 0; Time2MS ++; if(Time2MS >= 16) //2MS中断函数 { Time2MS = 0; TimeFlag = 1; } if(Buzz_Flag) BUZZ=!BUZZ; else BUZZ=0;

//*************************************** }

void Timer1_ISR(void) interrupt ISRTimer1 // Vector @ 0x1B { ; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值