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

📄 test1.c

📁 ucos-ii-at90S-icc-avr
💻 C
字号:
/*
*/
#define Test1_GLOBALS
#include "includes.h"

//******************************************************************************
// Variablen
OS_STK	Task2Stack[OS_TASK_DEF_STK_SIZE];		// startup task stack
OS_STK	Task3Stack[OS_TASK_DEF_STK_SIZE];	

//*****************************************************************************
// Prototypes
void Task2(void *pdata);
void Task3(void *pdata);
//*****************************************************************************

//*****************************************************************************
// Interrupt Timer/Counter0 Overflow
// OVF_Takt:  4MHz / 1024 / 39 = 10ms
#pragma interrupt_handler OSTickISR:8
//#pragma interrupt_handler test_OSTickISR0:8

void main()
{ 
  CLI();//close interrupt
  ProgramRest(FLASH_WHEN_RESET);
  OSInit();		// OS init
//check OSTCBFreeList;
  if(OSRunning || (0==OSTCBFreeList))//stack destroyed
    goto OSTASKCREATE_ERROR;  
  
  if(OS_NO_ERR!=OSTaskCreate(Task2,
              (void *)(int)'2',
              &Task2Stack[OS_TASK_DEF_STK_SIZE-1],
              TaskStartPrio))
    goto OSTASKCREATE_ERROR;

  if(OSRunning || (0==OSTCBFreeList))//stack destroyed
    goto OSTASKCREATE_ERROR;

  if(OS_NO_ERR!=OSTaskCreate(Task3,
              (void *)(int)'3',
              &Task3Stack[OS_TASK_DEF_STK_SIZE-1],
              TaskStartPrio+1))
    goto OSTASKCREATE_ERROR;
                
  TC2_Init();
  
  SEI();
  //check OSTCBCur
  //if(0==OSTCBCur)goto OSTASKCREATE_ERROR;
  OSStart();		// start multitasking
  //error
OSTASKCREATE_ERROR:
  //dead loop
  ProgramError();
}

//*****************************************************************************
void Task2(void *data){
  Task2_porta(data);
}
void Task2_porta(void *data){
  INT8U i,j=0;
  DDRA=0xff;
  while(1)
  {
    i++;
    PORTA=i;
  	OSTimeDly(10);
  }
}

void Task3(void *data){
  unsigned char i,j,k;
  while(1)
  {
  DDRC=0xff;
  SEI();
  for(i=0;i<8;i++)
  {
    j=1;
    for(k=0;k<=i;k++)
	  j*=2;
	asm("com %j");
	PORTC=j;
	OSTimeDly(10);
  }
  }
}

⌨️ 快捷键说明

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