教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

北航ARM9实验报告(4)

来源:网络收集 时间:2026-08-05
导读: 北京航空航天大学研究生实验报告 char err; char *c; #define rUTRSTAT0 (*(volatile unsigned *)0x50000010) #define RdURXH0() (*(volatile unsigned char *)0x50000024) #define WrUTXH0(ch) (*(volatile unsign

北京航空航天大学研究生实验报告

char err; char *c;

#define rUTRSTAT0 (*(volatile unsigned *)0x50000010)

#define RdURXH0() (*(volatile unsigned char *)0x50000024)

#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)

#define RED (0xff << 16) #define BLUE (0xff << 8) #define GREEN (0xff)

char Uart_Getchn(char* Revdata, int Uartnum, int timeout); void Uart_SendByten(int Uartnum, U8 data);

///******************任务定义***************///

/*OS_STK SYS_Task_Stack[STACKSIZE]= {0, }; //system task刷新任务堆栈 #define SYS_Task_Prio 1 void SYS_Task(void *Id);*/

OS_STK task1_Stack[STACKSIZE]={0, }; //Main_Test_Task堆栈 void Task1(void *Id); //Main_Test_Task #define Task1_Prio 12

OS_STK task2_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task2(void *Id); //test_Test_Task #define Task2_Prio 15

OS_STK task3_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task3(void *Id); //test_Test_Task #define Task3_Prio 17

OS_STK task4_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task4(void *Id); //test_Test_Task #define Task4_Prio 19

/**************已经定义的OS任务************* #define SYS_Task_Prio 1 #define Touch_Screen_Task_Prio 9 #define Main_Task_Prio 12

#define Key_Scan_Task_Prio 58 #define Lcd_Fresh_prio 59

- 15 -

北京航空航天大学研究生实验报告

#define Led_Flash_Prio 60

***************************************/////////

///*****************事件定义*****************///

/////////////////////////////////////////////////////

// Main function. // //////////////////////////////////////////////////// int main(void) { ARMTargetInit(); // do target (uHAL based ARM system) initialisation // OSInit(); // needed by uC/OS-II // //OSInitUart(); //initOSFile();

//#if USE_MINIGUI==0 // initOSMessage(); // initOSDC(); // LoadFont(); //#endif //loadsystemParam(); // create the tasks in uC/OS and assign increasing // // priorities to them so that Task3 at the end of // // the pipeline has the highest priority. // //LCD_printf(\ //OSTaskCreate(SYS_Task, (void *)0, (OS_STK *)&SYS_Task_Stack[STACKSIZE-1], SYS_Task_Prio); OSTaskCreate(Task1, (void *)0, (OS_STK *)&task1_Stack[STACKSIZE-1], Task1_Prio); OSTaskCreate(Task2, (void *)0, (OS_STK *)&task2_Stack[STACKSIZE-1], Task2_Prio); OSTaskCreate(Task3, (void *)0, (OS_STK *)&task3_Stack[STACKSIZE-1], Task3_Prio);

OSTaskCreate(Task4, (void *)0, (OS_STK *)&task4_Stack[STACKSIZE-1],

- 16 -

北京航空航天大学研究生实验报告

Task4_Prio); OSAddTask_Init(0);

BSPprintf(0,\ //LCD_printf(\ //LCD_printf(\ //LCD_ChangeMode(DspGraMode); OSStart(); // start the OS // // never reached // return 0; }//main

////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Task1(void *Id) { for(;;){ BSPprintf(0,\ if(ac_key == TRUE) {

ac_key = FALSE;

for(i=0;i

LCDBufferII2[j][i] = RED; } }

LCD_Refresh(); ac_key = TRUE; } OSTimeDly(1000); } }

void Task2(void *Id) { for(;;){ BSPprintf(0,\ if(ac_key == TRUE)

- 17 -

北京航空航天大学研究生实验报告

{

ac_key = FALSE;

for(i=0;i

LCDBufferII2[j][i] = GREEN; } }

LCD_Refresh(); ac_key = TRUE; } OSTimeDly(2000); } }

void Task3(void *Id) { /*char txmsg;

MboxSem = OSMboxCreate((void *)0); txmsg = 'A';*/ for(;;){ //OSMboxPost(MboxSem, (void *)&txmsg);

//BSPprintf(0,\ if(ac_key == TRUE) {

ac_key = FALSE;

for(i=0;i

LCDBufferII2[j][i] = BLUE; } }

LCD_Refresh(); ac_key = TRUE; } OSTimeDly(5000); } }

void Task4(void *Id) {

- 18 -

北京航空航天大学研究生实验报告

//char *rxmsg; // INT8U err; for(;;){

// rxmsg = (char *)OSMboxPend(MboxSem, 0, &err); //BSPprintf(0,\ err=Uart_Getchn(c,0,0); //从串口采集数据 Uart_SendByten(0, *c);

Uart_SendByten(0,0xa);//换行 Uart_SendByten(0,0xd);//回车 //OSTimeDly(1000); } }

void Uart_SendByten(int Uartnum, U8 data)//ok eric rong { //int i; if(Uartnum==0) { while(!(rUTRSTAT0 & 0x4)); //Wait until THR is empty. hudelay(10); WrUTXH0(data); } }

char Uart_Getchn(char* Revdata, int Uartnum, int timeout) { while(!(rUTRSTAT0 & 0x1)); //Receive data read *Revdata=RdURXH0(); return TRUE; }

八、思考题

1. 如何提高键盘的响应速度?

答:可以设置 …… 此处隐藏:1729字,全部文档内容请下载后查看。喜欢就下载吧 ……

北航ARM9实验报告(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443262.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)