logo资料库

基于us/os-II的嵌入式电子钟设计.doc

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
一、老师给的练习题目,基于 LPC2131 的一个小系统,带 6 个发光二极管。 源程序如下: #include "config.h" #define LEDSET (0xFF<<18) void PortInit(void) { PINSEL2=PINSEL2&(~0x08);// IO1DIR=LEDSET; IO1CLR=LEDSET; } void DelayNS (uint32 dly) { uint32 i; for ( ; dly>0; dly--) for (i=0; i<50000; i++); } void LED(void) { uint32 led,index; while(1) { led=0x01<<18; for(index=0;index<6;index++) { IO1CLR=LEDSET; IO1SET=led; led<<=1; DelayNS(20); } } } int main(void) { PortInit(); while(1) { LED(); } }
PROTEUS7.12 上构建的电路图如下(图 1): 配置 P1.18~P1.23 作为 GPIO 方式是输出,高电平 5V。 运行结果:运行后六个发光二极管从左到右依次点亮。 图 1
二、基础设计中在 PROTEUS7.12 上构建基于 LPC2131 的最小系统,带 2 个发光二极管。 基于提供的 UC/OS-II 操作系统进行应用程序编写的程序如下: #include "config.h" #define TASK_STK_SIZE 512 OS_STK StartTaskStk[TASK_STK_SIZE]; OS_STK Led1TaskStk[TASK_STK_SIZE]; OS_STK Led2TaskStk[TASK_STK_SIZE]; void StartTask(void *data); void Led1Task(void *data); void Led2Task(void *data); #define LEDSET (0xFF<<18) INT32U LED1=0x01<<18; INT32U LED2=0x01<<19; int main() {OSInit(); OSTaskCreate(StartTask,(void *)0,&StartTaskStk[TASK_STK_SIZE-1],0); OSStart(); return 0; } void PortInit(void) { PINSEL2=PINSEL2&(~0x08); IO1DIR=LEDSET; IO1CLR=LEDSET; } void DelayNS (INT32U dly) { INT32U i; for ( ; dly>0; dly--) for (i=0; i<1000; i++); } void StartTask(void *pdata) { pdata=pdata;
TargetInit(); PortInit(); OSTaskCreate(Led1Task,(void *)0,&Led1TaskStk[TASK_STK_SIZE-1],1); OSTaskCreate(Led2Task,(void *)0,&Led2TaskStk[TASK_STK_SIZE-1],2); OSTimeDlyHMSM(0,0,3,0); } void Led1Task(void *pdata) { pdata=pdata; for(;;) { IO1CLR=LEDSET; IO1SET=LED1; //DelayNS(200); //IO1SET=~LED1; OSTimeDlyHMSM(0,0,1,0); } } void Led2Task(void *pdata) { pdata=pdata; for(;;) { IO1CLR=LEDSET; IO1SET=LED2; //DelayNS(200); //IO1SET=~LED2; OSTimeDlyHMSM(0,0,2,0); } } 在 PROTEUS7.12 上构建的电路图如下(图 2):
用 P1 组脚作输出,配置 P1.18 和 P1.19 作为 GPIO 方式是输出。 实验结果:点击运行后,D1 先亮,明亮时间间隔是 1S,D2 接着亮,明亮间隔是 2S。 图 2
ADS1.2 代码配置示例: ADS1.2 的调试说明 ADS 进行仿真前需要要进行配置,ALT+F7 调出配置界面
Post-linker 中选择 ARM fromELF Language settings 中全部设置为 ARM7TDMI
设置程序入口地址
分享到:
收藏