⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 target.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;252                                                    /* set to 8,1,n 且设置为8,1,n */
;;;253    	U0IER = 0x00;                               /* Disable interrupt禁止中断 */
000244  e3a00000          MOV      r0,#0
000248  e5c10004          STRB     r0,[r1,#4]
;;;254        U0FCR = 0x00;                               /* initial FIFO 初始化FIFO */
00024c  e5c10008          STRB     r0,[r1,#8]
;;;255    } 
000250  e8bd4070          POP      {r4-r6,lr}
000254  e12fff1e          BX       lr
                          ENDP

                  InitialiseUART1 PROC
;;;256            void InitialiseUART1(uint32 bps)
;;;257    {  	
000258  e92d4070          PUSH     {r4-r6,lr}
00025c  e1a05000          MOV      r5,r0
;;;258        uint16 Fdiv;
;;;259        IO0DIR |=1<<10;
000260  e59f019c          LDR      r0,|L1.1028|
000264  e5900008          LDR      r0,[r0,#8]
000268  e3800b01          ORR      r0,r0,#0x400
00026c  e59f1190          LDR      r1,|L1.1028|
000270  e5810008          STR      r0,[r1,#8]
;;;260    	IO0CLR |=1<<10;
000274  e1a00001          MOV      r0,r1
000278  e590000c          LDR      r0,[r0,#0xc]
00027c  e3800b01          ORR      r0,r0,#0x400
000280  e581000c          STR      r0,[r1,#0xc]
;;;261      	PINSEL0 = (PINSEL0 & (~(0x0F<<16))) | (0x05<<16);	// 设置I/O连接到UART1    /* Select the pins for Uart 选择管脚为UART1 */
000284  e2810901          ADD      r0,r1,#0x4000
000288  e5900000          LDR      r0,[r0,#0]
00028c  e3c0080f          BIC      r0,r0,#0xf0000
000290  e3800805          ORR      r0,r0,#0x50000
000294  e2811901          ADD      r1,r1,#0x4000
000298  e5810000          STR      r0,[r1,#0]
;;;262    
;;;263        U1LCR = 0x83;                               /* Enable to access the frequenc regecter 允许访问分频因子寄存器 */
00029c  e3a00083          MOV      r0,#0x83
0002a0  e2411907          SUB      r1,r1,#0x1c000
0002a4  e5c1000c          STRB     r0,[r1,#0xc]
;;;264        Fdiv = (Fpclk / 16) / bps;                  /* Set the baudrate设置波特率 */
0002a8  e1a01005          MOV      r1,r5
0002ac  e59f0168          LDR      r0,|L1.1052|
0002b0  ebfffffe          BL       __aeabi_uidivmod
0002b4  e1a04800          LSL      r4,r0,#16
0002b8  e1a04824          LSR      r4,r4,#16
;;;265        U1DLM = Fdiv / 256;							
0002bc  e1a00004          MOV      r0,r4
0002c0  e1a01fc4          ASR      r1,r4,#31
0002c4  e0841c21          ADD      r1,r4,r1,LSR #24
0002c8  e1a01801          LSL      r1,r1,#16
0002cc  e1a01c21          LSR      r1,r1,#24
0002d0  e59f214c          LDR      r2,|L1.1060|
0002d4  e5c21004          STRB     r1,[r2,#4]
;;;266    	U1DLL = Fdiv % 256;						
0002d8  e1a00004          MOV      r0,r4
0002dc  e1a01fc4          ASR      r1,r4,#31
0002e0  e0841c21          ADD      r1,r4,r1,LSR #24
0002e4  e1a01441          ASR      r1,r1,#8
0002e8  e0441401          SUB      r1,r4,r1,LSL #8
0002ec  e5c21000          STRB     r1,[r2,#0]
;;;267        U1LCR = 0x03;                               /* Disable to access the frequenc regecter 禁止访问分频因子寄存器 */
0002f0  e3a00003          MOV      r0,#3
0002f4  e1c21000          BIC      r1,r2,r0
0002f8  e5c1000c          STRB     r0,[r1,#0xc]
;;;268                                                    /* set to 8,1,n 且设置为8,1,n */
;;;269    	U1IER = 0x00;                               /* Disable interrupt禁止中断 */
0002fc  e3a00000          MOV      r0,#0
000300  e5c10004          STRB     r0,[r1,#4]
;;;270        U1FCR = 0x00;                               /* initial FIFO 初始化FIFO */
000304  e5c10008          STRB     r0,[r1,#8]
;;;271    }
000308  e8bd4070          POP      {r4-r6,lr}
00030c  e12fff1e          BX       lr
                          ENDP

                  TargetResetInit PROC
;;;290            void TargetResetInit(void)
;;;291    {
000310  e92d4010          PUSH     {r4,lr}
;;;292    #ifdef __DEBUG_RAM    
;;;293        MEMMAP = 0x2;                   //remap
;;;294    #endif
;;;295    
;;;296    #ifdef __DEBUG_FLASH    
;;;297        MEMMAP = 0x1;                   //remap
;;;298    #endif
;;;299    
;;;300    #ifdef __IN_CHIP    
;;;301        MEMMAP = 0x1;                   //remap
;;;302    #endif
;;;303    
;;;304          
;;;305    /* 设置系统各部分时钟 */
;;;306    /* Set system timers for each component */
;;;307        PLLCON = 1;
000314  e3a00001          MOV      r0,#1
000318  e59f1108          LDR      r1,|L1.1064|
00031c  e5c10080          STRB     r0,[r1,#0x80]
;;;308    #if (Fpclk / (Fcclk / 4)) == 1
;;;309        VPBDIV = 0;
000320  e3a00000          MOV      r0,#0
000324  e5c10100          STRB     r0,[r1,#0x100]
;;;310    #endif
;;;311    #if (Fpclk / (Fcclk / 4)) == 2
;;;312        VPBDIV = 2;
;;;313    #endif
;;;314    #if (Fpclk / (Fcclk / 4)) == 4
;;;315        VPBDIV = 1;
;;;316    #endif
;;;317    
;;;318    #if (Fcco / Fcclk) == 2
;;;319        PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
;;;320    #endif
;;;321    #if (Fcco / Fcclk) == 4
;;;322        PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
000328  e3a00023          MOV      r0,#0x23
00032c  e5c10084          STRB     r0,[r1,#0x84]
;;;323    #endif
;;;324    #if (Fcco / Fcclk) == 8
;;;325        PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
;;;326    #endif
;;;327    #if (Fcco / Fcclk) == 16
;;;328        PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
;;;329    #endif
;;;330        PLLFEED = 0xaa;
000330  e3a000aa          MOV      r0,#0xaa
000334  e5c1008c          STRB     r0,[r1,#0x8c]
;;;331        PLLFEED = 0x55;
000338  e3a00055          MOV      r0,#0x55
00033c  e5c1008c          STRB     r0,[r1,#0x8c]
;;;332        while((PLLSTAT & (1 << 10)) == 0);
000340  e1a00000          MOV      r0,r0
                  |L1.836|
000344  e59f00dc          LDR      r0,|L1.1064|
000348  e1d008b8          LDRH     r0,[r0,#0x88]
00034c  e3100b01          TST      r0,#0x400
000350  0afffffb          BEQ      |L1.836|
;;;333        PLLCON = 3;
000354  e3a00003          MOV      r0,#3
000358  e59f10c8          LDR      r1,|L1.1064|
00035c  e5c10080          STRB     r0,[r1,#0x80]
;;;334        PLLFEED = 0xaa;
000360  e3a000aa          MOV      r0,#0xaa
000364  e5c1008c          STRB     r0,[r1,#0x8c]
;;;335        PLLFEED = 0x55;
000368  e3a00055          MOV      r0,#0x55
00036c  e5c1008c          STRB     r0,[r1,#0x8c]
;;;336    
;;;337    /* 设置存储器加速模块 */
;;;338    /* Set memory accelerater module*/
;;;339        MAMCR = 0;
000370  e3a00000          MOV      r0,#0
000374  e5c10000          STRB     r0,[r1,#0]
;;;340    #if Fcclk < 20000000
;;;341        MAMTIM = 1;
;;;342    #else
;;;343    #if Fcclk < 40000000
;;;344        MAMTIM = 2;
;;;345    #else
;;;346        MAMTIM = 3;
000378  e3a00003          MOV      r0,#3
00037c  e5c10004          STRB     r0,[r1,#4]
;;;347    #endif
;;;348    #endif
;;;349        MAMCR = 2;
000380  e3a00002          MOV      r0,#2
000384  e5c10000          STRB     r0,[r1,#0]
;;;350    
;;;351    /* 设置串行口 */
;;;352    /* initialize UART*/
;;;353        InitialiseUART0(115200);
000388  e59f009c          LDR      r0,|L1.1068|
00038c  ebfffffe          BL       InitialiseUART0
;;;354    	InitialiseUART1(115200);
000390  e59f0094          LDR      r0,|L1.1068|
000394  ebfffffe          BL       InitialiseUART1
;;;355    /* 设置实时时钟 */
;;;356    /* initialize RTC*/
;;;357        CCR = 1;
000398  e3a00001          MOV      r0,#1
00039c  e59f108c          LDR      r1,|L1.1072|
0003a0  e5c10008          STRB     r0,[r1,#8]
;;;358        PREINT = Fpclk / 32768 - 1;
0003a4  e2800f5b          ADD      r0,r0,#0x16c
0003a8  e1c108b0          STRH     r0,[r1,#0x80]
;;;359        PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
0003ac  e3a00c1b          MOV      r0,#0x1b00
0003b0  e1c108b4          STRH     r0,[r1,#0x84]
;;;360        YEAR = 2003;
0003b4  e59f0078          LDR      r0,|L1.1076|
0003b8  e1c103bc          STRH     r0,[r1,#0x3c]
;;;361        MONTH = 6;
0003bc  e3a00006          MOV      r0,#6
0003c0  e5c10038          STRB     r0,[r1,#0x38]
;;;362        DOM = 2;
0003c4  e3a00002          MOV      r0,#2
0003c8  e5c1002c          STRB     r0,[r1,#0x2c]
;;;363        
;;;364    /* initialize VIC*/
;;;365        VICIntEnClr = 0xffffffff;
0003cc  e3e00000          MVN      r0,#0
0003d0  e3a01000          MOV      r1,#0
0003d4  e5010fec          STR      r0,[r1,#-0xfec]
;;;366        VICVectAddr = 0;
0003d8  e3a00000          MOV      r0,#0
0003dc  e5000fd0          STR      r0,[r0,#-0xfd0]
;;;367        VICIntSelect = 0;
0003e0  e3a00000          MOV      r0,#0
0003e4  e5000ff4          STR      r0,[r0,#-0xff4]
;;;368        T0IR = 0xffffffff;
0003e8  e3e00000          MVN      r0,#0
0003ec  e59f1018          LDR      r1,|L1.1036|
0003f0  e5810000          STR      r0,[r1,#0]
;;;369        T0TCR = 0X02;
0003f4  e3a00002          MOV      r0,#2
0003f8  e5810004          STR      r0,[r1,#4]
;;;370    }
0003fc  e8bd4010          POP      {r4,lr}
000400  e12fff1e          BX       lr
                  |L1.1028|
000404  e0028000          DCD      0xe0028000
                  |L1.1032|
000408  e002c000          DCD      0xe002c000
                  |L1.1036|
00040c  e0004000          DCD      0xe0004000
                  |L1.1040|
000410  0000ea60          DCD      0x0000ea60
                  |L1.1044|
000414  00000000          DCD      IRQ_Handler
                  |L1.1048|
000418  00000000          DCD      Timer0_Handler
                  |L1.1052|
00041c  000b71b0          DCD      0x000b71b0
                  |L1.1056|
000420  e000c000          DCD      0xe000c000
                  |L1.1060|
000424  e0010000          DCD      0xe0010000
                  |L1.1064|
000428  e01fc000          DCD      0xe01fc000
                  |L1.1068|
00042c  0001c200          DCD      0x0001c200
                  |L1.1072|
000430  e0024000          DCD      0xe0024000
                  |L1.1076|
000434  000007d3          DCD      0x000007d3
                          ENDP


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -