⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 在M16上动行的Small RTOS
💻 C
字号:


#include "CONFIG/config.h"

#define TCNT0_INIT (0XFF-F_CPU/256/TICK_TIMER_SHARING/OS_TICKS_PER_SEC)

void Timer0Init(void)
{
	TCNT0=TCNT0_INIT;
	TCCR0=_BV(CS02);
	TIMSK=_BV(TOIE0);
}




int main (void)
{	
	cli();
	MCUCR  = 0x00;
	MCUCSR = 0x80;

	Timer0Init();


	OSStart();

	
	while (1);
}

SIGNAL(SIG_OVERFLOW0)
{
	TCNT0=TCNT0_INIT; 
	

	#if TICK_TIMER_SHARING >1 
    static uint8 TickSum = 0;
#endif

#if EN_USER_TICK_TIMER > 0 
    UserTickTimer();                                                                                  
#endif



#if TICK_TIMER_SHARING >1 
    TickSum = (TickSum + 1) % TICK_TIMER_SHARING;
    if (TickSum != 0)
    {
        return;
    }
#endif

#if EN_OS_INT_ENTER > 0 
    OS_INT_ENTER();                                     // 中断开始处理                                    
#endif
    

#if EN_TIMER_SHARING > 0
    OSTimeTick();                                       // 调用系统时钟处理函数                            
#else
    OSIntSendSignal(TIME_ISR_TASK_ID);                  // 唤醒ID为TIME_ISR_TASK_ID的任务                 
#endif
    
    OSIntExit();                     
	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -