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

📄 timer.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000590  e20004ff          AND      r0,r0,#0xff000000
000594  e59f1330          LDR      r1,|L1.2252|
000598  e1800001          ORR      r0,r0,r1
00059c  e3a01444          MOV      r1,#0x44000000
0005a0  e5810000          STR      r0,[r1,#0]
;;;191                rTCFG1 = 0x1111; 
0005a4  e59f0314          LDR      r0,|L1.2240|
0005a8  e3a01444          MOV      r1,#0x44000000
0005ac  e5810004          STR      r0,[r1,#4]
;;;192                break;
0005b0  ea00003f          B        |L1.1716|
;;;193    	 case 'h'://All Interrupt, MUX 4 ~ 0 : 1/8 //Dead zone=1,Prescaler1=255,Prescaler0=255	
;;;194                rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
                  |L1.1460|
0005b4  e3a00444          MOV      r0,#0x44000000
0005b8  e5900000          LDR      r0,[r0,#0]
0005bc  e20004ff          AND      r0,r0,#0xff000000
0005c0  e59f1304          LDR      r1,|L1.2252|
0005c4  e1800001          ORR      r0,r0,r1
0005c8  e3a01444          MOV      r1,#0x44000000
0005cc  e5810000          STR      r0,[r1,#0]
;;;195                rTCFG1 = 0x2222; 
0005d0  e59f02ec          LDR      r0,|L1.2244|
0005d4  e3a01444          MOV      r1,#0x44000000
0005d8  e5810004          STR      r0,[r1,#4]
;;;196                break;
0005dc  ea000034          B        |L1.1716|
;;;197    	 case 'i'://All Interrupt, MUX 4 ~ 0 : 1/16 //Dead zone=1,Prescaler1=255,Prescaler0=255	
;;;198                rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
                  |L1.1504|
0005e0  e3a00444          MOV      r0,#0x44000000
0005e4  e5900000          LDR      r0,[r0,#0]
0005e8  e20004ff          AND      r0,r0,#0xff000000
0005ec  e59f12d8          LDR      r1,|L1.2252|
0005f0  e1800001          ORR      r0,r0,r1
0005f4  e3a01444          MOV      r1,#0x44000000
0005f8  e5810000          STR      r0,[r1,#0]
;;;199                rTCFG1 = 0x3333; 
0005fc  e59f02c4          LDR      r0,|L1.2248|
000600  e3a01444          MOV      r1,#0x44000000
000604  e5810004          STR      r0,[r1,#4]
;;;200                break;
000608  ea000029          B        |L1.1716|
;;;201    //	case 'j'://All Interrupt, MUX 4 ~ 0 : TCLK1 //Dead zone=1,Prescaler1=255,Prescaler0=255	
;;;202    //            rTCFG0 = rTCFG0 & ~(0xffffff) | 0x1ffff;     
;;;203    //            rTCFG1 = 0x4444; 
;;;204    //            break;
;;;205    	 case 'k'://All Interrupt, MUX 1 ~ 0 : 1/2 //Dead zone=40,Prescaler1=0,Prescaler0=0	
;;;206                rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
                  |L1.1548|
00060c  e3a00444          MOV      r0,#0x44000000
000610  e5900000          LDR      r0,[r0,#0]
000614  e20004ff          AND      r0,r0,#0xff000000
000618  e38009a0          ORR      r0,r0,#0x280000
00061c  e3a01444          MOV      r1,#0x44000000
000620  e5810000          STR      r0,[r1,#0]
;;;207                rTCFG1 = 0x0; 
000624  e3a00000          MOV      r0,#0
000628  e3a01444          MOV      r1,#0x44000000
00062c  e5810004          STR      r0,[r1,#4]
;;;208                Deadzone_test_flag = 1;			
000630  e3a04001          MOV      r4,#1
;;;209                break;
000634  ea00001e          B        |L1.1716|
;;;210    	 case 'l'://All Interrupt, MUX 1 ~ 0 : 1/2 //Dead zone=1,Prescaler1=0,Prescaler0=0, PWM50%	
;;;211                rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
                  |L1.1592|
000638  e3a00444          MOV      r0,#0x44000000
00063c  e5900000          LDR      r0,[r0,#0]
000640  e20004ff          AND      r0,r0,#0xff000000
000644  e38009a0          ORR      r0,r0,#0x280000
000648  e3a01444          MOV      r1,#0x44000000
00064c  e5810000          STR      r0,[r1,#0]
;;;212                rTCFG1 = 0x0; 
000650  e3a00000          MOV      r0,#0
000654  e3a01444          MOV      r1,#0x44000000
000658  e5810004          STR      r0,[r1,#4]
;;;213                PWM50_test_flag = 1;			
00065c  e3a06001          MOV      r6,#1
;;;214                break;
000660  ea000013          B        |L1.1716|
;;;215    	 case 'm'://All Interrupt, MUX 4 ~ 0 : 1/2 //Dead zone=1,Prescaler1=0,Prescaler0=0, Invert ON
;;;216                rTCFG0 = rTCFG0 & ~(0xffffff) | 0x280000;     
                  |L1.1636|
000664  e3a00444          MOV      r0,#0x44000000
000668  e5900000          LDR      r0,[r0,#0]
00066c  e20004ff          AND      r0,r0,#0xff000000
000670  e38009a0          ORR      r0,r0,#0x280000
000674  e3a01444          MOV      r1,#0x44000000
000678  e5810000          STR      r0,[r1,#0]
;;;217                rTCFG1 = 0x0; 
00067c  e3a00000          MOV      r0,#0
000680  e3a01444          MOV      r1,#0x44000000
000684  e5810004          STR      r0,[r1,#4]
;;;218                Inverton_test_flag = 1;			
000688  e3a05001          MOV      r5,#1
;;;219                break;
00068c  ea000008          B        |L1.1716|
;;;220      			
;;;221            default:
;;;222    	    rTCON   = 0x0;		
                  |L1.1680|
000690  e3a00000          MOV      r0,#0
000694  e3a01444          MOV      r1,#0x44000000
000698  e5810008          STR      r0,[r1,#8]
;;;223               rGPCON_U  = save_GPCON_U;
00069c  e2810880          ADD      r0,r1,#0x800000
0006a0  e5808000          STR      r8,[r0,#0]
;;;224               rGPCON_L = save_GPCON_L;
0006a4  e5809008          STR      r9,[r0,#8]
;;;225    	    rGPDAT 	= save_GPDAT;
0006a8  e580a00c          STR      r10,[r0,#0xc]
;;;226    	    rGPPU 	= save_rGPUP;    			
0006ac  e580b010          STR      r11,[r0,#0x10]
;;;227               return;
;;;228        }
;;;229    
;;;230    ////////////////////////////////////////////////////////////////////////////////////  
;;;231    // Step1>> write the rTCNTBn and rTCMPBn
;;;232    //(1/(PCLK/(Prescaler+1)/divider) * count(Max 65535) = Timer clock (Frequency)
;;;233    ////////////////////////////////////////////////////////////////////////////////////  
;;;234    
;;;235        rTCNTB0 = rTCNTB0 & ~(0xffff) | 2000;       //(1/(50MHz/69/2))  *  2000 =  5.5200 msec (181.159  Hz)
;;;236                                                    //(1/(50.7MHz/69/2))*  2000 =  5.4437 msec (183.698  Hz)
;;;237                                                    //(1/(50MHz/1/2))   *  2000 =  0.0800 msec ( 12.500 KHz)
;;;238                                                    //(1/(50.7MHz/1/2)) *  2000 =  0.0788 msec ( 12.690 KHz)
;;;239        rTCNTB1 = rTCNTB1 & ~(0xffff) | 4000;       //(0.0000027600003) *  4000 = 11.0400 msec ( 90.579  Hz)
;;;240                                                    //(0.0000027218935) *  4000 = 10.8875 msec ( 91.848  Hz)
;;;241                                                    //(0.00000004)      *  4000 =  0.1600 msec (  6.250 KHz)
;;;242                                                    //(0.0000000394477) *  4000 =  0.1577 msec (  6.337 KHz)
;;;243        rTCNTB2 = rTCNTB2 & ~(0xffff) | 5000;       //(0.0000027600003) *  5000 = 13.8000 msec ( 72.463  Hz)
;;;244                                                    //(0.0000027218935) *  5000 = 13.6094 msec ( 73.478  Hz)
;;;245                                                    //(0.00000004)      *  5000 =  0.2000 msec (  5.000 KHz)
;;;246                                                    //(0.0000000394477) *  5000 =  0.1972 msec (  5.070 KHz)
;;;247        rTCNTB3 = rTCNTB3 & ~(0xffff) | 10000;      //(0.0000027600003) * 10000 = 27.6000 msec ( 36.231  Hz)
;;;248                                                    //(0.0000027218935) * 10000 = 27.2189 msec ( 36.739  Hz)
;;;249                                                    //(0.00000004)      * 10000 =  0.4000 msec (  2.500 KHz)
;;;250                                                    //(0.0000000394477) * 10000 =  0.3944 msec (  2.535 KHz)
;;;251    
;;;252    
;;;253       //Uart_Printf("rTCNTB0=%d |rTCNTB1=%d |rTCNTB2=%d | rTCNTB3=%d \n",rTCNTB0,rTCNTB1,rTCNTB2,rTCNTB3);
;;;254    
;;;255       if(PWM50_test_flag ==1 ){
;;;256           rTCMPB0 =  2000;     rTCMPB1 =  4000;    rTCMPB2 =  5000;    rTCMPB3 = 10000;
;;;257    	PWM50_test_flag = 0;
;;;258       }else{ 
;;;259           rTCMPB0 =  2000 - 1000;    rTCMPB1 =  4000 - 2000;    rTCMPB2 =  5000 - 2500;    rTCMPB3 = 10000-5000;
;;;260       }
;;;261    
;;;262       //Uart_Printf("rTCMPB0=%d |rTCMPB1=%d |rTCMPB2=%d | rTCMPB3=%d \n",rTCMPB0,rTCMPB1,rTCMPB2,rTCMPB3);
;;;263    
;;;264    
;;;265    ////////////////////////////////////////////////////////////////////////////////////
;;;266    //	Step2.>> Set the manual update bit[TCON] of the corresponging timer. it is recommended to configure
;;;267    //	   the inverter on/off bit
;;;268    ////////////////////////////////////////////////////////////////////////////////////
;;;269        //Uart_Printf("rTCON  = 0x%6x (Before)  <= Timer control register.\n",rTCON); 
;;;270    
;;;271         // [22:20] [19:16] [15:12] [11:8] [7:4] [3:0]
;;;272         //   110     1010   1010    1010   0000  1010
;;;273        if(Deadzone_test_flag == 1)
;;;274           rTCON   = rTCON & ~(0xffffff) | 0x6aaa1a;  //Auto reload, Inverter off, Manual update, Stop, Dead zone enable
;;;275        else 
;;;276           rTCON   = rTCON & ~(0xffffff) | 0x6aaa0a;  //Auto reload, Inverter off, Manual update, Stop, Dead zone disable
;;;277        
;;;278        if(Inverton_test_flag == 1) rTCON |= 0x44404;
;;;279    	
;;;280        //Uart_Printf("rTCON  = 0x%6x (After)   <= Timer control register.(0x6aaa0a)\n",rTCON);
;;;281    	
;;;282    
;;;283    ////////////////////////////////////////////////////////////////////////////////////
;;;284    // Step3>> set start bit of corresponding timer to start the timer
;;;285    //  (at the same time, clear the manual update bit)
;;;286     ////////////////////////////////////////////////////////////////////////////////////
;;;287        
;;;288         // [22:20] [19:16] [15:12] [11:8] [7:4] [3:0]
;;;289         //   101     1001   1001    1001   0000  1001
;;;290        if(Deadzone_test_flag == 1){
;;;291            //Auto reload, Inverter off, No operation, Timer0&1 Start, Dead zone enable
;;;292            rTCON   = rTCON & ~(0xffffff) | 0x099919;  
;;;293    	 Deadzone_test_flag=0;
;;;294        	}
;;;295        else{
;;;296           if(Inverton_test_flag ==1){
;;;297              rTCON   = rTCON & ~(0xffffff) | 0x5ddd0d; // inverter on
;;;298              Inverton_test_flag = 0;
;;;299          	}
;;;300    	 //Auto reload, Inverter off, No operation, Start, Dead zone disable
;;;301            rTCON   = rTCON & ~(0xffffff) | 0x599909;  
;;;302        }
;;;303    
;;;304        Uart_Printf("rTCON  = 0x%6x (After)   <= Timer control register.(0x599909)\n\n",rTCON);
;;;305        Uart_Printf("rGPGONU  = 0x%8x (After)   <= Timer control register.(0x599909)\n\n",rGPCON_U);	
;;;306        //Uart_Printf("\n");
;;;307        Uart_Printf("Probing PWM TOUT0,1,2,3 and ECLK, respectively TP20,19,18,17,16 \n");                                                           
;;;308        Uart_Printf("\nCheck PWM (Pulse Width Modulation) Output\n");
;;;309        Uart_Printf("Press any key to exit.\n");
;;;310        Uart_Printf("\n\n");
;;;311    
;;;312        Uart_Getch();   
;;;313    
;;;314        goto LABEL;
;;;315    ////////////////////////////////////////////////////////////////////////////////////
;;;316    // Step4 >> Stop timer
;;;317    ////////////////////////////////////////////////////////////////////////////////////	 
;;;318        rTCON   = 0x0;      //One-shot, Inverter off, No operation, Dead zone disable, Stop
;;;319        //Uart_Printf("rTCNTB0=0x%6x|rTCNTB1=0x%6x|rTCNTB2=0x%6x|rTCNTB3=0x%6x\n",rTCNTB0,rTCNTB1,rTCNTB2,rTCNTB3);
;;;320        //Uart_Printf("rTCMPB0=0x%6x|rTCMPB2=0x%6x|rTCMPB2=0x%6x|rTCMPB3=0x%6x\n",rTCMPB0,rTCMPB1,rTCMPB2,rTCMPB3);
;;;321        //Uart_Printf("rTCON  = 0x%6x   <= Timer control register.(0x0)\n",rTCON);
;;;322         rGPCON_U  = save_GPCON_U;
;;;323         rGPCON_L = save_GPCON_L;	
;;;324         rGPDAT 	= save_GPDAT;
;;;325         rGPPU 	= save_rGPUP;    			
;;;326    }
0006b0  e8bd8ff8          LDMFD    sp!,{r3-r11,pc}
                  |L1.1716|
0006b4  e3a00444          MOV      r0,#0x44000000        ;235
0006b8  e590000c          LDR      r0,[r0,#0xc]          ;235
0006bc  e1a00820          MOV      r0,r0,LSR #16         ;235
0006c0  e1a00800          MOV      r0,r0,LSL #16         ;235
0006c4  e3800e7d          ORR      r0,r0,#0x7d0          ;235
0006c8  e3a01444          MOV      r1,#0x44000000        ;235
0006cc  e581000c          STR      r0,[r1,#0xc]          ;235
0006d0  e3a00444          MOV      r0,#0x44000000        ;239
0006d4  e5900018          LDR      r0,[r0,#0x18]         ;239
0006d8  e1a00820          MOV      r0,r0,LSR #16         ;239
0006dc  e1a00800          MOV      r0,r0,LSL #16         ;239
0006e0  e3800efa          ORR      r0,r0,#0xfa0          ;239
0006e4  e3a01444          MOV      r1,#0x44000000        ;239
0006e8  e5810018          STR      r0,[r1,#0x18]         ;239
0006ec  e3a00444          MOV      r0,#0x44000000        ;243
0006f0  e5900024          LDR      r0,[r0,#0x24]         ;243
0006f4  e1a00820          MOV      r0,r0,LSR #16         ;243
0006f8  e1a00800          MOV      r0,r0,LSL #16         ;243
0006fc  e3800d40          ORR      r0,r0,#0x1000         ;243
000700  e3800fe2          ORR      r0,r0,#0x388          ;243
000704  e3a01444          MOV      r1,#0x44000000        ;243
000708  e5810024          STR      r0,[r1,#0x24]         ;243
00070c  e3a00444          MOV      r0,#0x44000000        ;247
000710  e5900030          LDR      r0,[r0,#0x30]         ;247
000714  e1a00820          MOV      r0,r0,LSR #16         ;247
000718  e1a00800          MOV      r0,r0,LSL #16         ;247
00071c  e3800d80          ORR      r0,r0,#0x2000         ;247
000720  e3800e71          ORR      r0,r0,#0x710          ;247
000724  e3a01444          MOV      r1,#0x44000000        ;247
000728  e5810030          STR      r0,[r1,#0x30]         ;247
00072c  e3560001          CMP      r6,#1                 ;255
000730  1a00000d          BNE      |L1.1900|             ;255
000734  e3a00e7d          MOV      r0,#0x7d0             ;256
000738  e3a01444          MOV      r1,#0x44000000        ;256
00073c  e5810010          STR      r0,[r1,#0x10]         ;256
000740  e3a00efa          MOV      r0,#0xfa0             ;256
000744  e3a01444          MOV      r1,#0x44000000        ;256
000748  e581001c          STR      r0,[r1,#0x1c]         ;256
00074c  e2800ffa          ADD      r0,r0,#0x3e8          ;256
000750  e3a01444          MOV      r1,#0x44000000        ;256
000754  e5810028          STR      r0,[r1,#0x28]         ;256
000758  e1a00080          MOV      r0,r0,LSL #1          ;256
00075c  e3a01444          MOV      r1,#0x44000000        ;256
000760  e5810034          STR      r0,[r1,#0x34]         ;256
000764  e3a06000          MOV      r6,#0                 ;257
000768  ea00000b          B        |L1.1948|             ;257
                  |L1.1900|
00076c  e3a00ffa          MOV      r0,#0x3e8             ;259
000770  e3a01444          MOV      r1,#0x44000000        ;259
000774  e5810010          STR      r0,[r1,#0x10]         ;259

⌨️ 快捷键说明

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