📄 usertask.lst
字号:
C51 COMPILER V7.09 USERTASK 05/05/2008 20:51:20 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE USERTASK
OBJECT MODULE PLACED IN USERTASK.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE USERTASK.C LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "c8051F340.h"
2 #include "includes.h"
3
4 OS_STK xdata mystack1[USER_STACK_SIZE],mystack2[USER_STACK_SIZE],mystack3[USER_STACK_SIZE];
5
6 void init_port(void);
7 void init_clk(void);
8 void mytask1(void) ;
9 void mytask2(void) ;
10 void mytask3(void) ;
11 void Init_Device(void);
12 extern void init_timer0(void);
13
14
15 void main(void)
16 {
17 1 //Init_Device();
18 1 init_clk();
19 1 PCA0MD = 0x00; /* disenable watchdog */
20 1 init_port();
21 1 init_uart0();
22 1 puts_uart0("Hello C8051F340!\n");
23 1
24 1 //while(1) putc_uart0(getc_uart0());
25 1
26 1 init_timer0();
27 1
28 1 OSInit();
29 1 OSTaskCreate(mytask1,0,&mystack1[0],0);
30 1 OSTaskCreate(mytask2,0,&mystack2[0],1);
31 1 OSTaskCreate(mytask3,0,&mystack3[0],2);
32 1 OSStart();
33 1 }
34
35 void init_port(void)
36 {
37 1 P0MDIN = 0xFF; /* non-analog input */
38 1 P0MDOUT = 0x10; /* TX0 push-pull output, RX0 open drain output */
39 1 P1MDIN = 0xFF;
40 1 P1MDOUT = 0x02;
41 1 P1 = 0x02; /* enablel max3223 tranceiver */
42 1
43 1 XBR0 = 0x01; /* enable uart0 */
44 1 XBR1 = 0x40; /* enable cross, enable draw-up resistor */
45 1 }
46
47 void init_clk(void)
48 {
49 1 unsigned char i;
50 1
51 1 OSCICN = 0x83; /* enable internal high frequency oscillator, set sysclk 12MHz */
52 1 while(!(OSCICN & 0x40)); /* wait internal high frequency oscillator ready */
53 1
54 1 OSCLCN = 0x00; /* shutdown internal low frequency oscillator */
55 1 OSCXCN = 0x00; /* shutdown external oscillator */
C51 COMPILER V7.09 USERTASK 05/05/2008 20:51:20 PAGE 2
56 1
57 1 CLKMUL = 0x80; /* enable multiplier use internal oscillator */
58 1 for(i = 255; i > 0;i --); /* delay 5us minimum */
59 1 CLKMUL |= 0xC0; /* initial multiplier */
60 1 while(!(CLKMUL & 0x20)); /* wait multiplier ready */
61 1
62 1 CLKSEL = 0x00; /* usb clock use multiplier output, sysclk use internal oscillator */
63 1 }
64
65 void mytask1(void)
66 {
67 1 TR0 = 1;
68 1 while(1)
69 1 {
70 2 puts_uart0("Task 11111111 is running!\n");
71 2 OSTimeDly(OS_TICKS_PER_SEC);
72 2 }
73 1 }
74 void mytask2(void)
75 {
76 1 while(1)
77 1 {
78 2 puts_uart0("Task 22222222 is running!\n");
79 2 OSTimeDly(100);
80 2 }
81 1 }
82 void mytask3(void)
83 {
84 1 while(1)
85 1 {
86 2 puts_uart0("Task 33333333 is running!\n");
87 2 OSTimeDly(200);
88 2 }
89 1 }
90
91
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 312 ----
CONSTANT SIZE = 99 ----
XDATA SIZE = 300 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -