📄 main.c
字号:
#include <stdio.h>
#include <string.h>
#include "conreg.h"
#include "timer.h"
#include "uart.h"
#include "led.h"
#include "includes.h"
#include "16C550.h"
extern int Interrupt_Init(void);
extern void PIO_Initialize(void);
extern void PIO_Set_High(uint pio);
extern void PIO_Set_Low(uint pio);
extern uint PIO_Read(uint pio);
#define STACKSIZE 256
#define IRQ_VECTOR_OFFSET (0x18)
unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];
unsigned long MS_TIMER;
void Task1(void *i)
{
for (;;)
{
Uart_Printf("Task1 running.\r\n");
LED_Blink(1);
LED_Blink(3);
OSTimeDly(5);
}
}
void Task2(void *i)
{
uint8 j=0;
for (;;)
{
j++;
Uart_Printf("Task2 running.\r\n");
LED_Blink(2);
LED_Blink(4);
if(j==5)
{
OSTaskSuspend(5);
Uart_Printf("\rTask1 Suspend.\n");
LED_Off(1);
LED_Off(3);
}
if(j==11)
{
OSTaskResume(5);
Uart_Printf("\rTask1 Resume.\n");
}
if(j==17)
{
OSTaskDel(5);
LED_Off(1);
LED_Off(3);
Uart_Printf("\rTask1 Delete.\n");
}
OSTimeDly(5);
}
}
void delay(int ms)
{
unsigned long t0;
t0 = MS_TIMER;
while (MS_TIMER < (t0 + ms))
/* do nothing */;
}
int main(void)
{
unsigned long i;
unsigned long MS_TIMER;
Interrupt_Init();
clock_init();
UART_Initialize(0);
//UART16C550_Init();
PIO_Initialize();
while(1)
{
PIO_Set_Low(16);
for(i=0; i<90000;i++);
PIO_Set_Low(17);
for(i=0; i<90000;i++);
PIO_Set_Low(18);
for(i=0; i<90000;i++);
PIO_Set_High(18);
for(i=0; i<90000;i++);
PIO_Set_High(17);
for(i=0; i<90000;i++);
PIO_Set_High(16);
for(i=0; i<90000;i++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -