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

📄 main.c

📁 ucos2在at91sam64dk上的移植程序-mcuzone
💻 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 + -