📄 main.c
字号:
#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 "pcf8563.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;
unsigned char EEDAT[20]={0,1,2,3,4,5,6,7,8,0x39,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x55,};
void delay(void)
{
unsigned int i=500000;
while(i) i--;
}
void task1(void *pd)
{
//unsigned char i=0;
//TWIsend(0xa1,100,EEDAT,20);
//OSTimeDly(100);
//TWIread(0xa1,90,EEDAT,20);
//for(i=0;i<20;i++)
//uprintf(CONSOLE,"[%d]=%2x\r\n",i,EEDAT[i]);
//AT91C_BASE_RSTC->RSTC_RMR=(0xA5<<24)|(15<<8)|(1);
//AT91C_BASE_RSTC->RSTC_RCR=(0xA5<<24)|0x08;
pd=pd;
while(1)
{
AT91C_BASE_PIOA->PIO_SODR=0x04;
OSTimeDly(5);
AT91C_BASE_PIOA->PIO_CODR=0x04;
OSTimeDly(5);
}
}
extern volatile unsigned int OSTime;
void task2(void *pd)
{
pd=pd;
while(1)
{
AT91C_BASE_PIOA->PIO_SODR=0x02;
OSTimeDly(50);
AT91C_BASE_PIOA->PIO_CODR=0x02;
OSTimeDly(50);
//PCFGetTime(EEDAT);
//uprintf(CONSOLE,"%2xY%2xM%2xD %2xh%2xm%2xs\r\n",EEDAT[6],EEDAT[5]&0x1F,EEDAT[3]&0x3F,EEDAT[2]&0x3F,EEDAT[1]&0x7F,EEDAT[0]&0x7F);
uprintf(CONSOLE," OSTIME=%8d\r\n",OSTime);
}
}
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_ODSR|=0x07;
AT91C_BASE_PIOA->PIO_SODR= 0x07;
Uart_SendStr(CONSOLE,"**********************************************\r\n");
Uart_SendStr(CONSOLE,"S64-DEK Rev 2.0\r\n");
Uart_SendStr(CONSOLE,"www.mcuzone.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);
Uart_SendStr(CONSOLE," \r\n");
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();
TWIinit();
ADCinit();
//PCFinit();
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);
//CONSOLEsem=OSSemCreate(1);
OSStart();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -