亚洲欧美第一页_禁久久精品乱码_粉嫩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羞羞动漫久久久 | 在线亚洲+欧美+日本专区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美精品一区二区三区蜜桃视频| 久久97超碰国产精品超碰| 久久美女艺术照精彩视频福利播放| 精品一区二区在线播放| 久久久美女毛片| 91在线播放网址| 午夜国产精品一区| 日韩免费看网站| 欧美日高清视频| 午夜精品国产更新| 久久婷婷一区二区三区| 99精品热视频| 日韩精品乱码av一区二区| 久久色在线观看| 日本精品一区二区三区高清 | 欧美v亚洲v综合ⅴ国产v| 国产美女精品一区二区三区| 中文字幕综合网| 91麻豆精品国产91久久久资源速度 | 国产激情一区二区三区桃花岛亚洲| 中文字幕久久午夜不卡| 欧美日韩一区二区三区在线看| 蜜臀av一区二区三区| 国产精品久久久久久久久久久免费看 | 亚洲精品va在线观看| 日韩欧美国产精品| 99久免费精品视频在线观看| 日本在线观看不卡视频| 国产精品久久久久久久第一福利 | 国产jizzjizz一区二区| 亚洲国产欧美一区二区三区丁香婷| 欧美mv日韩mv国产| 在线观看日韩国产| 国产成人av影院| 日韩和欧美一区二区| 国产精品国产a| 精品国产三级电影在线观看| 91国产丝袜在线播放| 国产精品中文字幕欧美| 午夜一区二区三区视频| 国产精品久久久久一区二区三区共 | 狠狠久久亚洲欧美| 午夜伦欧美伦电影理论片| 国产精品区一区二区三| 精品成人一区二区| 欧美猛男超大videosgay| 成人v精品蜜桃久久一区| 免费视频最近日韩| 亚洲一区二区三区中文字幕在线 | 精品嫩草影院久久| 欧美日韩国产天堂| 91美女在线视频| 成人h精品动漫一区二区三区| 久久精品国产成人一区二区三区| 午夜欧美电影在线观看| 一区二区三区四区激情| 中文字幕欧美一| 日本一区二区在线不卡| 久久久三级国产网站| 欧美一级片免费看| 国产欧美一二三区| 26uuu色噜噜精品一区| 欧美一级在线观看| 69堂国产成人免费视频| 欧美日韩国产一区二区三区地区| 在线精品视频小说1| 欧美在线高清视频| 日本精品视频一区二区三区| 色噜噜偷拍精品综合在线| 91蜜桃在线观看| 色成年激情久久综合| 91亚洲精品一区二区乱码| 99久久精品情趣| 99久久精品费精品国产一区二区| 99这里只有精品| jlzzjlzz亚洲日本少妇| 99久久er热在这里只有精品66| 成人黄色av电影| 色视频一区二区| 欧美三级在线看| 91精品国产一区二区三区蜜臀| 91.成人天堂一区| 日韩免费电影一区| 精品成人在线观看| 亚洲国产经典视频| 亚洲天堂a在线| 午夜电影一区二区| 极品少妇xxxx精品少妇| 成人久久视频在线观看| 91香蕉视频在线| 欧美老女人在线| 久久亚洲一级片| 亚洲三级视频在线观看| 亚洲一区二区偷拍精品| 美女网站色91| 国产99久久久精品| 在线观看一区二区精品视频| 欧美一级片在线看| 欧美国产综合一区二区| 亚洲专区一二三| 极品美女销魂一区二区三区| 91麻豆精品在线观看| 7777精品久久久大香线蕉| 国产日韩欧美精品一区| 一区二区三区成人在线视频| 麻豆免费精品视频| 99久久免费国产| 日韩精品一区二区三区视频在线观看| 国产亚洲福利社区一区| 亚洲专区一二三| 国产一区二区三区久久悠悠色av | 欧美午夜片在线看| 欧美电视剧免费观看| 国产精品国产三级国产有无不卡| 性久久久久久久| 成人ar影院免费观看视频| 欧美日韩精品是欧美日韩精品| 久久久不卡网国产精品二区| 一区二区三区国产豹纹内裤在线| 国内不卡的二区三区中文字幕| 91亚洲精品一区二区乱码| 精品少妇一区二区三区视频免付费 | 欧美日韩精品欧美日韩精品 | 国产一区三区三区| 91久久精品日日躁夜夜躁欧美| 精品久久久久久久久久久久久久久久久| 国产精品久久久一本精品| 美女一区二区在线观看| 欧美一区二区在线不卡| **网站欧美大片在线观看| 国产一区二区主播在线| 欧美日韩视频在线观看一区二区三区| 久久精品视频免费| 日本不卡一区二区三区| 色婷婷亚洲一区二区三区| 久久精品水蜜桃av综合天堂| 日韩中文字幕麻豆| 一本色道a无线码一区v| 国产日韩成人精品| 久久国内精品视频| 91精品午夜视频| 一片黄亚洲嫩模| 99国产精品久久久久久久久久| 国产午夜亚洲精品不卡| 久久精品国产亚洲aⅴ| 欧美剧情片在线观看| 亚洲激情在线播放| 91一区二区在线| 成人免费在线观看入口| 成人黄色电影在线| 国产农村妇女精品| 成人午夜电影小说| 欧美激情一区二区在线| 国产精品一线二线三线精华| 精品sm在线观看| 激情五月婷婷综合网| 欧美一级二级三级蜜桃| 视频一区二区三区在线| 欧美老肥妇做.爰bbww| 首页综合国产亚洲丝袜| 欧美疯狂做受xxxx富婆| 日韩电影在线免费观看| 欧美一区二区三区成人| 久久电影国产免费久久电影 | 国产99久久久精品| 中文字幕一区日韩精品欧美| av电影一区二区| 自拍偷拍欧美激情| 在线国产亚洲欧美| 天天综合网天天综合色| 在线不卡中文字幕| 蜜桃精品视频在线观看| 欧美电影免费观看完整版| 精品系列免费在线观看| 国产天堂亚洲国产碰碰| 97精品国产97久久久久久久久久久久| 亚洲视频你懂的| 欧美视频一二三区| 精品一区二区三区在线播放| 久久久久久97三级| 成人av手机在线观看| 亚洲乱码国产乱码精品精小说| 欧美在线免费播放| 美女www一区二区| 中文字幕高清不卡| 日本久久精品电影| 男人的天堂久久精品| 国产天堂亚洲国产碰碰| 91美女视频网站| 日韩国产在线一| 国产免费久久精品| 欧美日韩小视频| 国产在线精品免费| 亚洲精品ww久久久久久p站| 欧美videossexotv100| 99久久免费精品高清特色大片|