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

📄 main.c.111021140010

📁 mega16 ucos操作系统
💻 111021140010
字号:
#include "..\source\CPU_source\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 UartInit(INT32U baud_rate)
{
    INT16U  divisor;
    INT16U  temp;                 /* -------- INITIALIZE THE SERIAL PORT ---------- */
    temp    = (CPU_CLK_FREQ * 2) / (16 * baud_rate);
    divisor = (temp + 1) / 2 - 1; /* Compute baud rate divisor and round off        */
	
    UCSRB = 0x00; 						//disable while setting baud rate
    UCSRA = 0x00;
    UCSRC = 0x06;
    UBRRL = divisor & 0x00FF;		//set baud rate lo 19.2k
    UBRRH = divisor >> 8;; 						//set baud rate hi
    UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);  
    Uart0RingBuf.RxIndex=0;
	
}
 
void System_Init(void)
{
    //端口的初始化
 	PORTA = 0x00; //output
	DDRA  = 0xff;	
   
	PORTB = 0xFF; //output
	DDRB  = 0xFF;
   
	PORTC = 0x00; // output only
	DDRC  = 0xFF;
	
	PORTD = 0X00; //串口
	DDRD = 0X02; 
		 
	//串口的初始化
	UartInit(9600);
	//ad采集的初始化
		 
	/*蜂鸣器*/
    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 + -