亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pwm.lst

?? hitex公司的ARM7培訓資料源碼
?? LST
?? 第 1 頁 / 共 2 頁
字號:
ARM COMPILER V2.50a,  pwm                                                                  08/03/06  18:03:57  PAGE 1   


ARM COMPILER V2.50a, COMPILATION OF MODULE pwm
OBJECT MODULE PLACED IN .\Obj\pwm.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe pwm.c THUMB INCDIR(..\Common\inc) DEBUG PRINT(.\LST\PWM.LST) TABS(4) OBJECT(
                    -.\Obj\pwm.obj) 

stmt  level    source

    1          /*****************************************************************************
    2           *   pwm.c:  PWM module file for Philips LPC214x Family Microprocessors
    3           *
    4           *   Copyright(C) 2006, Philips Semiconductor
    5           *   All rights reserved.
    6           *
    7           *   History
    8           *   2005.10.01  ver 1.00    Prelimnary version, first Release
    9           *
   10          ******************************************************************************/
   11          #include "LPC214x.H"                        /* LPC21xx definitions */
   12          #include "type.h"
   13          #include "irq.h"
   14          #include "timer.h"
   15          #include "pwm.h"
   16          
   17          DWORD match_counter;
   18          
   19          /******************************************************************************
   20          ** Function name:       PWMHandler
   21          **
   22          ** Descriptions:        PWM interrupt handler
   23          **              For now, it only deals with PWM match 0
   24          **
   25          ** parameters:          None
   26          ** Returned value:      None
   27          ** 
   28          ******************************************************************************/
   29          void PWMHandler (void) __irq 
   30          {
   31   1          DWORD regVal;
   32   1      
   33   1          regVal = PWMIR;
   34   1          IENABLE;            /* handles nested interrupt */
   35   1          if ( regVal & MR0_INT )
   36   1          {
   37   2          match_counter++;    
   38   2          }
   39   1          PWMIR |= regVal;        /* clear interrupt flag on match 0 */
   40   1          IDISABLE;
   41   1          VICVectAddr = 0;        /* Acknowledge Interrupt */
   42   1      }
   43          
   44          /******************************************************************************
   45          ** Function name:       PWM_Init
   46          **
   47          ** Descriptions:        PWM initialization, setup all GPIOs to PWM0~6,
   48          **              reset counter, all latches are enabled, interrupt
   49          **              on PWMMR0, install PWM interrupt to the VIC table.
   50          **
   51          ** parameters:          Duty cycle
   52          ** Returned value:      true or fase, if VIC table is full, return false
   53          ** 
   54          ******************************************************************************/
   55          DWORD PWM_Init( DWORD cycle )
   56          {
   57   1          match_counter = 0;
   58   1          PINSEL0 = 0x000A800A;   /* set GPIOs for all PWMs */
ARM COMPILER V2.50a,  pwm                                                                  08/03/06  18:03:57  PAGE 2   

   59   1          PINSEL1 = 0x00000400;
   60   1      
   61   1          PWMTCR = TCR_RESET;     /* Counter Reset */ 
   62   1              
   63   1          PWMPR = 0x00;       /* count frequency:Fpclk */
   64   1          PWMMCR = PWMMR0I | PWMMR0R; /* interrupt on PWMMR0, reset on PWMMR0, reset 
   65   1                      TC if PWM0 matches */               
   66   1          PWMMR0 = cycle;     /* set PWM cycle */
   67   1          PWMMR1 = cycle * 5/6;
   68   1          PWMMR2 = cycle * 2/3;
   69   1          PWMMR3 = cycle * 1/2;
   70   1          PWMMR4 = cycle * 1/3;
   71   1          PWMMR5 = cycle * 1/6;   
   72   1      
   73   1          /* all PWM latch enabled */
   74   1          PWMLER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;
   75   1      
   76   1          if ( install_irq( PWM0_INT, (void *)PWMHandler ) == FALSE )
   77   1          {
   78   2          return (FALSE);
   79   2          }
   80   1          return (TRUE);
   81   1      }
   82          
   83          /******************************************************************************
   84          ** Function name:       PWM_Set
   85          **
   86          ** Descriptions:        PWM cycle setup
   87          **
   88          ** parameters:          PWM cycle and offset
   89          ** Returned value:      None
   90          ** 
   91          ******************************************************************************/
   92          void PWM_Set( DWORD cycle, DWORD offset )
   93          {           
   94   1          PWMMR0 = cycle;     /* set PWM cycle */
   95   1          PWMMR1 = cycle * 5/6 + offset;
   96   1          PWMMR2 = cycle * 2/3 + offset;
   97   1          PWMMR3 = cycle * 1/2 + offset;
   98   1          PWMMR4 = cycle * 1/3 + offset;
   99   1          PWMMR5 = cycle * 1/6 + offset;
  100   1      
  101   1          /* The LER will be cleared when the Match 0 takes place, in order to
  102   1          load and execute the new value of match registers, all the PWMLERs need to
  103   1          reloaded. all PWM latch enabled */
  104   1          PWMLER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;    
  105   1          return;
  106   1      }
  107          
  108          /******************************************************************************
  109          ** Function name:       PWM_Start
  110          **
  111          ** Descriptions:        Enable PWM by setting the PCR, PTCR registers
  112          **
  113          ** parameters:          None
  114          ** Returned value:      None
  115          ** 
  116          ******************************************************************************/
  117          void PWM_Start( void )
  118          {
  119   1          /* All single edge, all enable */
  120   1          PWMPCR = PWMENA1 | PWMENA2 | PWMENA3 | PWMENA4 | PWMENA5 | PWMENA6;
  121   1          PWMTCR = TCR_CNT_EN | TCR_PWM_EN;   /* counter enable, PWM enable */
  122   1          return;
  123   1      }
  124          
ARM COMPILER V2.50a,  pwm                                                                  08/03/06  18:03:57  PAGE 3   

  125          /******************************************************************************
  126          ** Function name:       PWM_Stop
  127          **
  128          ** Descriptions:        Stop all PWM channels
  129          **
  130          ** parameters:          None
  131          ** Returned value:      None
  132          ** 
  133          ******************************************************************************/
  134          void PWM_Stop( void )
  135          {
  136   1          PWMPCR = 0;
  137   1          PWMTCR = 0x00;      /* Stop all PWMs */
  138   1          return;
  139   1      }
  140          
ARM COMPILER V2.50a,  pwm                                                                  08/03/06  18:03:57  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (install_irq?T)
 EXTERN CODE16 (?C?UDIV?T)



*** PUBLICS:
 PUBLIC         PWM_Init?T
 PUBLIC         PWM_Set?T
 PUBLIC         PWM_Start?T
 PUBLIC         PWM_Stop?T
 PUBLIC         PWMHandler?A
 PUBLIC         match_counter



*** DATA SEGMENT '?DT0?pwm':
 00000000          match_counter:
 00000000            DS          4



*** CODE SEGMENT '?PR?PWMHandler?A?pwm':
   29: void PWMHandler (void) __irq 
 00000000  E92D400F  STMDB       R13!,{R0-R3,LR}
   30: {
 00000004            ; SCOPE-START
   33:     regVal = PWMIR;
 00000004  E5100000  LDR         R0,=0xE0014000
 00000008  E5903000  LDR         R3,[R0,#0x0]
 0000000C  ---- Variable 'regVal' assigned to Register 'R3' ----
   34:     IENABLE;            /* handles nested interrupt */
 0000000C  E14FE000  MRS         R14,SPSR
 00000010  E92D4000  STMFD       R13!,{LR}
 00000014  E321F01F  MSR         CPSR_c,#0x1F
 00000018  E92D4000  STMFD       R13!,{LR}
   35:     if ( regVal & MR0_INT )
 0000001C  E1A00003  MOV         R0,R3 ; regVal
 00000020  E3100001  TST         R0,#0x0001 ; regVal
 00000024  0A000003  BEQ         L_1  ; Targ=0x38
   37:     match_counter++;    
 00000028  E5100000  LDR         R0,=match_counter ; match_counter
 0000002C  E5901000  LDR         R1,[R0,#0x0] ; match_counter
 00000030  E2811001  ADD         R1,R1,#0x0001
 00000034  E5801000  STR         R1,[R0,#0x0] ; match_counter
   38:     }
 00000038          L_1:
   39:     PWMIR |= regVal;        /* clear interrupt flag on match 0 */
 00000038  E1A02003  MOV         R2,R3 ; regVal
 0000003C  E5100000  LDR         R0,=0xE0014000
 00000040  E5901000  LDR         R1,[R0,#0x0]
 00000044  E1811002  ORR         R1,R1,R2 ; regVal
 00000048  E5801000  STR         R1,[R0,#0x0]
   40:     IDISABLE;
 0000004C  E8BD4000  LDMFD       R13!,{LR}
 00000050  E321F092  MSR         CPSR_c,#0x92
 00000054  E8BD4000  LDMFD       R13!,{LR}
 00000058  E16FF00E  MSR         SPSR_cxsf,R14
   41:     VICVectAddr = 0;        /* Acknowledge Interrupt */
 0000005C  E3A01000  MOV         R1,#0x0
 00000060  E5100000  LDR         R0,=0xFFFFF030
 00000064  E5801000  STR         R1,[R0,#0x0]
 00000068            ; SCOPE-END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产色蜜蜜麻豆| 欧美在线短视频| 91传媒视频在线播放| 欧美成人福利视频| 亚洲免费在线看| 国产精品一区二区三区乱码| 欧美日韩视频在线观看一区二区三区| 国产日韩精品一区二区三区 | 一区二区高清在线| 久久99精品久久久久婷婷| 在线精品视频免费观看| 国产午夜精品一区二区| 久久电影网站中文字幕 | 欧美日韩国产另类不卡| 综合久久久久久久| 国产精品一级二级三级| 日韩精品一区二区三区中文不卡| 一区二区三区av电影| 不卡视频免费播放| 欧美激情在线观看视频免费| 九九在线精品视频| 日韩一级高清毛片| 日韩影院在线观看| 欧美日韩美女一区二区| 亚洲一二三四区| 在线观看三级视频欧美| 亚洲精品高清在线观看| 91网上在线视频| 最近中文字幕一区二区三区| 成人av资源在线| 国产精品福利影院| jvid福利写真一区二区三区| 中文字幕一区不卡| 99久久精品久久久久久清纯| 中文字幕欧美一| thepron国产精品| 亚洲三级视频在线观看| 99久久久无码国产精品| **欧美大码日韩| 91福利在线播放| 天天操天天色综合| 91麻豆精品国产自产在线 | 亚洲一区在线观看视频| 在线精品国精品国产尤物884a| 亚洲综合成人网| 欧美一区二区在线看| 久久99精品久久久久婷婷| 久久日韩粉嫩一区二区三区| 国产乱国产乱300精品| 日本一区二区免费在线观看视频 | 欧美高清dvd| 蜜桃av一区二区三区| 精品国产伦理网| 国产福利91精品一区| 亚洲视频在线一区| 欧美喷潮久久久xxxxx| 激情av综合网| 亚洲精品日韩综合观看成人91| 欧美日韩视频不卡| 国产一区二区三区高清播放| 中文字幕一区在线观看视频| 欧美性大战xxxxx久久久| 久久国产人妖系列| 国产精品理伦片| 在线成人免费观看| 国产在线视频精品一区| 夜色激情一区二区| 精品成人a区在线观看| 色综合久久99| 国产一区欧美日韩| 亚洲最色的网站| 国产无遮挡一区二区三区毛片日本| 97se亚洲国产综合在线| 美女性感视频久久| 一区二区在线观看免费| 国产亚洲自拍一区| 欧美精品久久久久久久久老牛影院| 国产最新精品精品你懂的| 亚洲最新视频在线观看| 久久精品夜色噜噜亚洲a∨| 欧美中文字幕一二三区视频| 韩国一区二区三区| 午夜激情久久久| 国产精品久久久久久久久动漫| 欧美一级高清大全免费观看| 91丨porny丨首页| 国产乱子轮精品视频| 亚洲高清免费观看| 成人欧美一区二区三区白人| 精品国产乱码久久久久久牛牛| 91国产免费看| 9色porny自拍视频一区二区| 国产美女精品在线| 久久99在线观看| 日本女优在线视频一区二区| 一区二区三区四区中文字幕| 国产精品久久久久久久久晋中 | 青青青爽久久午夜综合久久午夜| 亚洲乱码中文字幕综合| 欧美国产日韩a欧美在线观看| 日韩一区二区三区在线| 欧美日韩精品一区二区三区 | 日韩精品一区第一页| 亚洲精品中文字幕在线观看| 欧美国产在线观看| 久久久久国产一区二区三区四区| 欧美成人猛片aaaaaaa| 在线播放亚洲一区| 在线播放视频一区| 欧美日韩一卡二卡| 欧美日韩日日骚| 欧美三级中文字| 欧美精品三级日韩久久| 欧美日韩在线三级| 9191久久久久久久久久久| 精品视频一区二区三区免费| 欧美日韩中文精品| 欧美日韩精品欧美日韩精品一| 欧美三级视频在线观看| 91精品国产色综合久久不卡电影| 欧美三片在线视频观看| 欧美精品日韩综合在线| 日韩午夜在线播放| 精品国产露脸精彩对白| 国产亚洲污的网站| 中文字幕制服丝袜成人av| 亚洲欧美电影一区二区| 亚洲小说欧美激情另类| 一区二区三区日韩在线观看| 亚洲成人综合网站| 秋霞电影网一区二区| 国产老妇另类xxxxx| 成人app在线观看| 在线观看av一区二区| 欧美一区二区三区日韩视频| 久久精品人人做人人爽97| 亚洲欧美综合另类在线卡通| 亚洲综合视频在线观看| 日韩成人精品在线| 国产成人小视频| 日本乱码高清不卡字幕| 91精品国产综合久久精品| 久久久久免费观看| 亚洲男同1069视频| 日本午夜精品视频在线观看| 国产老肥熟一区二区三区| 91原创在线视频| 日韩一区二区视频| 亚洲品质自拍视频网站| 日韩电影免费在线| 9l国产精品久久久久麻豆| 欧美疯狂做受xxxx富婆| 国产精品午夜电影| 日本在线不卡一区| av资源网一区| 精品国产髙清在线看国产毛片| 国产精品久久久一区麻豆最新章节| 亚洲一区二区偷拍精品| 国产成人精品免费网站| 欧美日韩一区二区在线视频| 国产喂奶挤奶一区二区三区| 亚洲高清三级视频| 成人激情动漫在线观看| 日韩一级高清毛片| 亚洲免费观看高清完整版在线| 激情综合网av| 欧美日韩亚洲另类| 日韩理论电影院| 国产精品一区二区不卡| 欧美美女激情18p| 中文字幕日韩欧美一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 一本到不卡精品视频在线观看| 精品日韩在线观看| 日韩黄色一级片| 在线视频欧美精品| 国产精品高潮呻吟久久| 国产剧情一区二区| 日韩欧美综合一区| 日欧美一区二区| 欧美性色黄大片手机版| 国产精品黄色在线观看| 国产精品99久久久久久久vr | 五月天激情小说综合| 99精品国产91久久久久久| 久久美女高清视频| 精品一区二区影视| 日韩亚洲电影在线| 午夜视黄欧洲亚洲| 欧美日韩国产色站一区二区三区| 亚洲青青青在线视频| www.欧美色图| 亚洲欧洲精品天堂一级| 国产91露脸合集magnet| 久久九九99视频| 国产69精品一区二区亚洲孕妇| 国产视频在线观看一区二区三区| 精品在线一区二区| 26uuu另类欧美亚洲曰本| 国产伦精品一区二区三区免费迷 |