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

📄 main.c

📁 BK7S64开发板的uC/OS-II移植源代码
💻 C
字号:
//-------------------------------------------------------------------------
//
//  单位名称:西安博控电子科技有限公司
//
//  文件名: main.c
//
//  文件创建人:shw
//
//   编译环境:keil UV3 MDK 303 	编译器:ADS1.2
//
//  最后修改日期:
//
//  说明
//
//-------------------------------------------------------------------------


#include "AT91SAM7S64.h"
#include "SAMinit.h"

#include "S64Pit.h"
#include "SAMIsr.h"
#include "SAMuart.h"
#include "SAMpwmc.h"
#include "SAMtc.h"
#include "SAMtwi.h"
#include "SAMadc.h"

#include "includes.h"

INT32U STK_TASK1[USER_TASK_STK_SIZE];
INT32U STK_TASK2[USER_TASK_STK_SIZE];
INT32U STK_TASK3[USER_TASK_STK_SIZE];

OS_EVENT *CONSOLEsem=(OS_EVENT *)0;


void delay(void)
{
 unsigned int i=500000;
 while(i) i--;
}

void task1(void *pd)
{

 pd=pd;

 while(1)
   {
    AT91C_BASE_PIOA->PIO_SODR=0x02;
    OSTimeDly(5);
    AT91C_BASE_PIOA->PIO_CODR=0x02;
    OSTimeDly(5);		
   } 
}

extern volatile unsigned int OSTime;
void task2(void *pd)
{
 pd=pd;

 while(1)
   {
    AT91C_BASE_PIOA->PIO_SODR=0x04;
    OSTimeDly(50);
    AT91C_BASE_PIOA->PIO_CODR=0x04;
    OSTimeDly(50);
   } 
}


void task3(void *pd)
{
 unsigned int vbat=0;
 
 pd=pd;
 
 S64PitInit();
 TC2init();

 // clock
 AT91C_BASE_PMC->PMC_PCER = (1<<2);          // PIOA
 
 AT91C_BASE_PIOA->PIO_PER = 0x07;
 AT91C_BASE_PIOA->PIO_OER = 0x07;
 AT91C_BASE_PIOA->PIO_SODR= 0x07;

 Uart_SendStr(CONSOLE,"**********************************************\r\n");
 Uart_SendStr(CONSOLE,"BK7S64 Rev 2.0\r\n");
 Uart_SendStr(CONSOLE,"www.ARM114.com\r\n");
      uprintf(CONSOLE,"AT91SAM7S64 runs at %7d Hz\r\n",F_CPU);
 Uart_SendStr(CONSOLE,"**********************************************\r\n");

 vbat=ADCConv(ADC_CH_BAT);
 uprintf(CONSOLE,"Vbat=%4dmV\r\n",vbat*25*33/128); 

 while(1)
   {
    AT91C_BASE_PIOA->PIO_SODR=0x01;
    OSTimeDly(200);
    AT91C_BASE_PIOA->PIO_CODR=0x01;
    OSTimeDly(200);		
   } 
}

/*************************************************************************************/
void Main(void)
{
 S64Init();

 Uart0Init();
 Uart1Init();
 PWMCinit();

 OSInit();

 OSTaskCreate(task1,(void *)0,(OS_STK *)&STK_TASK1[USER_TASK_STK_SIZE-1],0);
 OSTaskCreate(task2,(void *)0,(OS_STK *)&STK_TASK2[USER_TASK_STK_SIZE-1],1);
 OSTaskCreate(task3,(void *)0,(OS_STK *)&STK_TASK3[USER_TASK_STK_SIZE-1],2);
 
 OSStart();

}

⌨️ 快捷键说明

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