📄 main.c.111019200232
字号:
#include "includes.h"
void StartTask(void *pdata);
OS_STK StartTaskStack[OS_TASK_START_STK_SIZE]={0};
/*
******************************************************************************
* Timer0 overflow 用于系统时钟节拍
*****************************************************************************
*/
void OSTick_Init (void){
OS_ENTER_CRITICAL();
//WDTCR=(1<<WDTOE)|(1<<WDE);
//WDTCR=(1<<WDE);//17ms看门狗
TIMSK &= ~(BIT(TOIE0) /* | BIT(OCIE0) */); /*disable TC0 interrupts */
TCCR0 = 0x02; /* /8 */
TCNT0 = 0x05; /* Counter overflow initial , 0.5ms @ 4MHz */
TIMSK |= BIT(TOIE0); /* enable OVF-interrupt */
OS_EXIT_CRITICAL(); // enable global interrupt
}
void System_Init(void)
{
//端口的初始化
PORTA = 0x40;
DDRA = 0xFF;
PORTB = 0x43; //beep off ,BAT_C+ == OFF、BAT_C- == OFF
DDRB = 0x5F; //01011100 主要用于均衡模块的控制端口的IO扩展
PORTC = 0x00; //主要用于开关的控制
DDRC = 0x3F; //00111100
PORTD = 0x00; //开关和485总线
DDRD = 0x1C; //PD3扩展成第5位ID
/*蜂鸣器*/
PORTA&=~(1<<PA6);
delay_nms(100);
PORTA|=(1<<PA6); //PB2控制蜂鸣器
}
// Start
void main(void)
{
System_Init();
OSTaskStkSize = OS_TASK_IDLE_STK_SIZE; /* Setup the default stack size */
OSTaskStkSizeHard = OS_TASK_IDLE_STK_SIZE_HARD; /* Setup the default hardware stack size */
OSInit(); // OS init
OSTaskStkSize = OS_TASK_START_STK_SIZE; /* Setup the total stack size */
OSTaskStkSizeHard = OS_TASK_START_STK_SIZE_HARD; /* Setup the hardware stack size */
OSTaskCreate( StartTask,
(void *)0,
(OS_STK *)&StartTaskStack[OSTaskStkSize - 1],
OS_TASK_START_PRIO);
OSStart();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -