📄 test2.c
字号:
#define Test1_GLOBALS
#include "includes.h"
//******************************************************************************
// Constants
#define TaskStartPrio 10 // Task-Prioritaeten
//*****************************************************************************
// Variablen
INT8U display[5];
INT8U h,m,s,state;
OS_STK Task1Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE];
//ICC-AVR application builder : 2003-12-28 21:52:56
// Target : M8
// Crystal: 8.0000Mhz
#include <iom16v.h>
#include <macros.h>
#include <stdio.h>
//*****************************************************************************
// Prototypes
//*****************************************************************************
// TickISR
//*****************************************************************************
// Init Timer/Counter2 fuer Takterzeugung
void TC2_Init (void){
/* Only uses TIMER2 overflow for tick interrupt. Timer compare
* can also be used.
*/
TIMSK &= ~(BIT(TOIE2)/* | BIT(OCIE2) */); //disable TC2 interrupts
TCCR2 = 0x00; // interner Takt, /1024
TCNT2 = 0; // Counter ruecksetzen, 2ms @ 8MHz
TCCR2 = 0x04; // 64
// OCR2 = 180; // OutputCompareRegister
TIMSK |= BIT(TOIE2); // enable OVF-interrupt
//TIMSK |= OCIE2; // enable COMP-interrupt
SEI(); // enable global interrupt
}
//*****************************************************************************
// Interrupt Timer/Counter0 Overflow
// OVF_Takt: 4MHz / 1024 / 39 = 10ms
#pragma interrupt_handler OSTickISR:5
void Task1(void *pdata);
void Task2(void *pdata);
//*****************************************************************************
// Start
void main(void){
OSInit(); // OS init
Uart_init();
//Prints("ATmega8 uc/os-II Test!");
//Putchar(0x0d);
//Putchar(0x0a);
OSTaskCreate(Task1, (void *)0, &Task1Stack[OS_TASK_DEF_STK_SIZE-1], 7);
OSTaskCreate(Task2, (void *)0, &Task2Stack[OS_TASK_DEF_STK_SIZE-1], 8);
// init und start tick
TC2_Init(); // Timer/Counter#2 Overflow and Comp init
OSStart(); // start multitasking
}
//*****************************************************************************
void Task1(void *data){
for (;;){
//Prints("ATmega16_UCOS_ii");
Putchar(0x80);
OSTimeDly (100);
}
}
void Task2(void *data){
data = data;
OSTimeDly(5);
for (;;){
//Prints("Test_OK!");
Putchar(0x20);
OSTimeDly (500);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -