📄 main.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 + -