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

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

?? pwm.lst

?? lpc2148-keil環境下的各個功能模塊的例程
?? 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国产免费观看| 日本丶国产丶欧美色综合| 欧美一三区三区四区免费在线看| 日本一区二区三区高清不卡| 亚洲成av人片| 色www精品视频在线观看| 久久久久高清精品| 日韩成人精品视频| 91国模大尺度私拍在线视频| 国产欧美一区二区三区网站| 免费高清在线一区| 在线观看一区二区精品视频| 国产精品初高中害羞小美女文| 蜜桃视频在线一区| 欧美丰满一区二区免费视频 | www.成人网.com| 日韩欧美一区二区在线视频| 亚洲综合清纯丝袜自拍| 91污在线观看| 亚洲三级免费电影| 成人高清免费在线播放| 中文字幕国产一区| 国产91丝袜在线播放九色| 91精品国产一区二区三区蜜臀| 一片黄亚洲嫩模| 色综合中文字幕国产| 久久亚洲免费视频| 国产在线精品一区在线观看麻豆| 欧美mv和日韩mv的网站| 六月丁香综合在线视频| 欧美一区二区视频在线观看2020| 亚洲成a人片在线不卡一二三区| 91最新地址在线播放| 中文字幕佐山爱一区二区免费| 丁香六月久久综合狠狠色| 亚洲国产精品成人综合 | 久久精品欧美日韩| 国产在线一区观看| 国产午夜一区二区三区| 福利一区二区在线| 亚洲丝袜制服诱惑| 在线视频亚洲一区| 天天综合网天天综合色| 91精品一区二区三区久久久久久 | 欧美精品 日韩| 日本视频中文字幕一区二区三区| 日韩亚洲欧美中文三级| 国产综合久久久久久久久久久久| 国产午夜三级一区二区三| 成人性视频免费网站| 一区二区三区四区激情| 欧美日韩精品欧美日韩精品一| 五月天久久比比资源色| 欧美mv和日韩mv国产网站| 豆国产96在线|亚洲| 亚洲影院免费观看| 精品国产区一区| 99精品国产99久久久久久白柏| 亚洲一区免费观看| 久久影院电视剧免费观看| 99在线热播精品免费| 日韩精品每日更新| 国产日韩精品一区二区三区| 日本久久电影网| 黄一区二区三区| 玉米视频成人免费看| 精品乱码亚洲一区二区不卡| 成人国产一区二区三区精品| 午夜不卡av在线| 国产精品久久三区| 日韩精品一区二区三区蜜臀| 97精品超碰一区二区三区| 免费欧美日韩国产三级电影| 国产精品不卡视频| 欧美电影免费观看高清完整版在线观看 | 日韩国产欧美在线视频| 国产精品丝袜91| 欧美一区二区女人| 99re免费视频精品全部| 麻豆国产精品777777在线| 亚洲欧美乱综合| 久久久精品国产免费观看同学| 欧美日韩日日摸| 99国产精品99久久久久久| 久久精品国产一区二区三区免费看| 亚洲欧美电影一区二区| 久久影院电视剧免费观看| 欧美精品久久一区二区三区| a美女胸又www黄视频久久| 精品一区二区影视| 亚洲大片精品永久免费| 亚洲品质自拍视频| 国产欧美日韩久久| 精品裸体舞一区二区三区| 欧美日韩电影在线播放| 91久久精品一区二区二区| 国产91富婆露脸刺激对白| 麻豆极品一区二区三区| 午夜免费久久看| 亚洲黄色av一区| 亚洲欧美影音先锋| 国产精品亲子伦对白| 国产欧美一区二区精品忘忧草| 欧美成人欧美edvon| 日韩午夜在线观看视频| 欧美日韩黄视频| 欧美体内she精视频| 91久久国产最好的精华液| 成人aa视频在线观看| 成人一区二区三区在线观看| 夫妻av一区二区| 丁香婷婷深情五月亚洲| 国产mv日韩mv欧美| 国产成人精品影院| 成人精品高清在线| 成+人+亚洲+综合天堂| 99久久99久久免费精品蜜臀| 99精品视频一区| 色吧成人激情小说| 欧美日韩在线观看一区二区| 欧美三级日韩三级| 欧美人与z0zoxxxx视频| 欧美电影在线免费观看| 9191久久久久久久久久久| 日韩欧美中文一区二区| 久久婷婷久久一区二区三区| 中文字幕精品综合| 亚洲精品中文在线影院| 亚洲国产日韩在线一区模特| 日韩精品1区2区3区| 精品一区二区免费在线观看| 韩国一区二区在线观看| 高清免费成人av| 色欧美乱欧美15图片| 欧美性大战久久久久久久蜜臀| 欧美久久久久久久久| 久久蜜桃av一区精品变态类天堂| 国产精品二三区| 亚洲va欧美va人人爽| 国产一区高清在线| 一本到不卡精品视频在线观看| 91精品啪在线观看国产60岁| 久久久久久久网| 亚洲永久精品国产| 国产综合久久久久久鬼色| 91网址在线看| 精品奇米国产一区二区三区| 国产亚洲一区二区三区| 亚洲综合av网| 国产麻豆精品久久一二三| 91久久精品一区二区三区| 精品国产免费人成电影在线观看四季 | 亚洲欧美国产高清| 奇米影视7777精品一区二区| 成人免费观看视频| 欧美二区三区91| 国产精品入口麻豆九色| 午夜精品福利一区二区蜜股av | 免费人成在线不卡| av中文字幕不卡| 精品欧美久久久| 亚洲激情校园春色| 国产精品一卡二卡在线观看| 欧美色偷偷大香| 国产精品福利一区二区三区| 美女性感视频久久| 色老头久久综合| 中文字幕第一页久久| 麻豆国产91在线播放| 欧美日韩中文字幕一区| 日本一区二区成人在线| 美女爽到高潮91| 精品视频在线看| 最新中文字幕一区二区三区| 国内精品在线播放| 欧美肥大bbwbbw高潮| 亚洲国产一二三| 91麻豆免费视频| 国产精品午夜春色av| 麻豆免费看一区二区三区| 欧美视频一区二区在线观看| 国产精品高潮呻吟| 国产99久久久国产精品潘金网站| 日韩你懂的电影在线观看| 亚洲成人一区在线| 欧美怡红院视频| 亚洲激情一二三区| 色噜噜狠狠一区二区三区果冻| 国产精品盗摄一区二区三区| 国产91精品精华液一区二区三区 | 在线成人高清不卡| 一区二区三区不卡视频在线观看| 成人理论电影网| 国产精品区一区二区三区| 国产精品系列在线观看| 久久精品水蜜桃av综合天堂| 国产一区在线精品| 国产亚洲福利社区一区| 国产精品亚洲第一区在线暖暖韩国|