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

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

?? adc.lst

?? keil下的ARM實驗例子,很詳細的實驗說明
?? LST
?? 第 1 頁 / 共 4 頁
字號:
  263          ** Function name:       ADC0Read
  264          **
  265          ** Descriptions:        Read ADC0 channel
  266          **
  267          ** parameters:          Channel number
  268          ** Returned value:      Value read, if interrupt driven, return channel #
  269          ** 
  270          *****************************************************************************/
  271          DWORD ADC0Read( BYTE channelNum )
  272          {
  273   1      #if !ADC_INTERRUPT_FLAG
                   DWORD regVal, ADC_Data;
               #endif
  276   1      
  277   1          /* channel number is 0 through 7 */
  278   1          if ( channelNum >= ADC_NUM )
  279   1          {
  280   2          channelNum = 0;     /* reset channel number to 0 */
  281   2          }
  282   1          AD0CR &= 0xFFFFFF00;
  283   1          AD0CR |= (1 << 24) | (1 << channelNum); 
  284   1                      /* switch channel,start A/D convert */
  285   1      #if !ADC_INTERRUPT_FLAG
                   while ( 1 )         /* wait until end of A/D convert */
                   {
                   regVal = *(volatile unsigned long *)(AD0_BASE_ADDR 
                           + ADC_OFFSET + ADC_INDEX * channelNum);
                               /* read result of A/D conversion */
                   if ( regVal & ADC_DONE )
                   {
                       break;
                   }
                   }   
                       
                   AD0CR &= 0xF8FFFFFF;    /* stop ADC now */    
                   if ( regVal & ADC_OVERRUN ) /* save data when it's not overrun
                               otherwise, return zero */
                   {
                   return ( 0 );
                   }
                   ADC_Data = ( regVal >> 6 ) & 0x3FF;
                   return ( ADC_Data );    /* return A/D conversion value */
               #else
  306   1          return ( channelNum );  /* if it's interrupt driven, the 
  307   1                      ADC reading is done inside the handler.
  308   1                      so, return channel number */
  309   1      #endif
  310   1      }
  311          
  312          /*****************************************************************************
  313          ** Function name:       ADC1Read
  314          **
  315          ** Descriptions:        Read ADC1 channel
  316          **
  317          ** parameters:          Channel number
  318          ** Returned value:      Value read, if interrupt driven, return channel #
  319          ** 
  320          *****************************************************************************/
  321          DWORD ADC1Read( BYTE channelNum )
  322          {
ARM COMPILER V2.53,  adc                                                                   12/10/06  20:06:10  PAGE 6   

  323   1      #if !ADC_INTERRUPT_FLAG
                   DWORD regVal, ADC_Data;
               #endif
  326   1      
  327   1          /* channel number is 0 through 7 */
  328   1          if ( channelNum >= ADC_NUM )
  329   1          {
  330   2          channelNum = 0;     /* reset channel number to 0 */
  331   2          }
  332   1          AD1CR &= 0xFFFFFF00;
  333   1          AD1CR |= (1 << 24) | (1 << channelNum); 
  334   1                      /* switch channel,start A/D convert */
  335   1      #if !ADC_INTERRUPT_FLAG
                   while ( 1 )         /* wait until end of A/D convert */
                   {
                   regVal = *(volatile unsigned long *)(AD1_BASE_ADDR 
                           + ADC_OFFSET + ADC_INDEX * channelNum);
                               /* read result of A/D conversion */
                   if ( regVal & ADC_DONE )
                   {
                       break;
                   }
                   }   
                       
                   AD1CR &= 0xF8FFFFFF;    /* stop ADC now */
                   if ( regVal & ADC_OVERRUN ) /* save data when it's not overrun
                               otherwise, return zero */
                   {
                   return ( 0 );
                   }
                   
                   ADC_Data = ( regVal >> 6 ) & 0x3FF;
                   return ( ADC_Data );    /* return A/D conversion value */
               #else
  357   1          return ( channelNum );
  358   1      #endif
  359   1      }
  360          
  361          /*********************************************************************************
  362          **                            End Of File
  363          *********************************************************************************/
ARM COMPILER V2.53,  adc                                                                   12/10/06  20:06:10  PAGE 7   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



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



*** PUBLICS:
 PUBLIC         ADC0Handler?A
 PUBLIC         ADC1Handler?A
 PUBLIC         ADCInit?T
 PUBLIC         ADC0Read?T
 PUBLIC         ADC1Read?T
 PUBLIC         ADC0Value
 PUBLIC         ADC1Value
 PUBLIC         ADC0IntDone
 PUBLIC         ADC1IntDone



*** DATA SEGMENT '?DT0?adc':
 00000000          ADC0Value:
 00000000            DS          32
 00000020          ADC1Value:
 00000020            DS          32
 00000040          ADC0IntDone:
 00000040           BEGIN_INIT
 00000040  00000000  DD          0x0
 00000044           END_INIT
 00000044          ADC1IntDone:
 00000044           BEGIN_INIT
 00000044  00000000  DD          0x0
 00000048           END_INIT



*** CODE SEGMENT '?PR?ADC0Handler?A?adc':
   30: void ADC0Handler (void) __irq 
 00000000  E92D4007  STMDB       R13!,{R0-R2,LR}
   31: {
 00000004            ; SCOPE-START
   34:     IENABLE;            /* handles nested interrupt */
 00000004  E14FE000  MRS         R14,SPSR
 00000008  E92D4000  STMFD       R13!,{LR}
 0000000C  E321F01F  MSR         CPSR_c,#0x1F
 00000010  E92D4000  STMFD       R13!,{LR}
   36:     regVal = AD0STAT;       /* Read ADC will clear the interrupt */
 00000014  E5100000  LDR         R0,=0xE0034030
 00000018  E5901000  LDR         R1,[R0,#0x0]
 0000001C  ---- Variable 'regVal' assigned to Register 'R1' ----
   37:     if ( regVal & 0x0000FF00 )  /* check OVERRUN error first */
 0000001C  E1A00001  MOV         R0,R1 ; regVal
 00000020  E3100CFF  TST         R0,#0xFF00 ; regVal
 00000024  0A000031  BEQ         L_1  ; Targ=0xF0
   39:     regVal = (regVal & 0x0000FF00) >> 0x08;
 00000028  E2011CFF  AND         R1,R1,#0xFF00 ; regVal
 0000002C  E1A01421  MOV         R1,R1,LSR #8
   42:     switch ( regVal )
 00000030  E1A00001  MOV         R0,R1 ; regVal
 00000034  E3500002  CMP         R0,#0x0002 ; regVal
 00000038  0A000010  BEQ         L_5  ; Targ=0x80
 0000003C  E3500004  CMP         R0,#0x0004 ; regVal
 00000040  0A000011  BEQ         L_6  ; Targ=0x8C
 00000044  E3500008  CMP         R0,#0x0008 ; regVal
 00000048  0A000012  BEQ         L_7  ; Targ=0x98
 0000004C  E3500010  CMP         R0,#0x0010 ; regVal
 00000050  0A000013  BEQ         L_8  ; Targ=0xA4
 00000054  E3500020  CMP         R0,#0x0020 ; regVal
 00000058  0A000014  BEQ         L_9  ; Targ=0xB0
 0000005C  E3500040  CMP         R0,#0x0040 ; regVal
ARM COMPILER V2.53,  adc                                                                   12/10/06  20:06:10  PAGE 8   

 00000060  0A000015  BEQ         L_10  ; Targ=0xBC
 00000064  E3500080  CMP         R0,#0x0080 ; regVal
 00000068  0A000016  BEQ         L_11  ; Targ=0xC8
 0000006C  E3500001  CMP         R0,#0x0001 ; regVal
 00000070  1A000016  BNE         L_2  ; Targ=0xD0
   44:         case 0x01:
 00000074          L_3:
   45:         regVal = AD0DR0;
 00000074  E5100000  LDR         R0,=0xE0034010
 00000078  E5901000  LDR         R1,[R0,#0x0]
   46:         break;
 0000007C  EA000013  B           L_2  ; Targ=0xD0
   47:         case 0x02:
 00000080          L_5:
   48:         regVal = AD0DR1;
 00000080  E5100000  LDR         R0,=0xE0034014
 00000084  E5901000  LDR         R1,[R0,#0x0]
   49:         break;
 00000088  EA000010  B           L_2  ; Targ=0xD0
   50:         case 0x04:
 0000008C          L_6:
   51:         regVal = AD0DR2;
 0000008C  E5100000  LDR         R0,=0xE0034018
 00000090  E5901000  LDR         R1,[R0,#0x0]
   52:         break;
 00000094  EA00000D  B           L_2  ; Targ=0xD0
   53:         case 0x08:
 00000098          L_7:
   54:         regVal = AD0DR3;
 00000098  E5100000  LDR         R0,=0xE003401C
 0000009C  E5901000  LDR         R1,[R0,#0x0]
   55:         break;
 000000A0  EA00000A  B           L_2  ; Targ=0xD0
   56:         case 0x10:
 000000A4          L_8:
   57:         regVal = AD0DR4;
 000000A4  E5100000  LDR         R0,=0xE0034020
 000000A8  E5901000  LDR         R1,[R0,#0x0]
   58:         break;
 000000AC  EA000007  B           L_2  ; Targ=0xD0
   59:         case 0x20:
 000000B0          L_9:
   60:         regVal = AD0DR5;
 000000B0  E5100000  LDR         R0,=0xE0034024
 000000B4  E5901000  LDR         R1,[R0,#0x0]
   61:         break;
 000000B8  EA000004  B           L_2  ; Targ=0xD0
   62:         case 0x40:
 000000BC          L_10:
   63:         regVal = AD0DR6;
 000000BC  E5100000  LDR         R0,=0xE0034028
 000000C0  E5901000  LDR         R1,[R0,#0x0]
   64:         break;
 000000C4  EA000001  B           L_2  ; Targ=0xD0
   65:         case 0x80:
 000000C8          L_11:
   66:         regVal = AD0DR7;
 000000C8  E5100000  LDR         R0,=0xE003402C
 000000CC  E5901000  LDR         R1,[R0,#0x0]
   70:     }
 000000D0          L_2:
   71:     AD0CR &= 0xF8FFFFFF;    /* stop ADC now */ 
 000000D0  E5100000  LDR         R0,=0xE0034000
 000000D4  E5902000  LDR         R2,[R0,#0x0]
 000000D8  E3C22407  BIC         R2,R2,#0x7000000
 000000DC  E5802000  STR         R2,[R0,#0x0]
ARM COMPILER V2.53,  adc                                                                   12/10/06  20:06:10  PAGE 9   

   72:     ADC0IntDone = 1;
 000000E0  E3A02001  MOV         R2,#0x1
 000000E4  E5100000  LDR         R0,=ADC0IntDone ; ADC0IntDone
 000000E8  E5802000  STR         R2,[R0,#0x0] ; ADC0IntDone
   73:     return; 
 000000EC  EA000061  B           L_12  ; Targ=0x278
   74:     }
 000000F0          L_1:
   76:     if ( regVal & ADC_ADINT )
 000000F0  E1A00001  MOV         R0,R1 ; regVal
 000000F4  E3100801  TST         R0,#0x10000 ; regVal
 000000F8  0A000057  BEQ         L_13  ; Targ=0x25C
   78:     switch ( regVal & 0xFF )    /* check DONE bit */
 000000FC  E1A00001  MOV         R0,R1 ; regVal
 00000100  E20000FF  AND         R0,R0,#0x00FF ; regVal
 00000104  E3500002  CMP         R0,#0x0002
 00000108  0A000015  BEQ         L_17  ; Targ=0x164
 0000010C  E3500004  CMP         R0,#0x0004
 00000110  0A00001B  BEQ         L_18  ; Targ=0x184
 00000114  E3500008  CMP         R0,#0x0008
 00000118  0A000021  BEQ         L_19  ; Targ=0x1A4
 0000011C  E3500010  CMP         R0,#0x0010
 00000120  0A000027  BEQ         L_20  ; Targ=0x1C4
 00000124  E3500020  CMP         R0,#0x0020
 00000128  0A00002D  BEQ         L_21  ; Targ=0x1E4
 0000012C  E3500040  CMP         R0,#0x0040
 00000130  0A000033  BEQ         L_22  ; Targ=0x204
 00000134  E3500080  CMP         R0,#0x0080
 00000138  0A000039  BEQ         L_23  ; Targ=0x224
 0000013C  E3500001  CMP         R0,#0x0001
 00000140  1A00003E  BNE         L_14  ; Targ=0x240
   80:         case 0x01:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆成人精品| 亚洲欧美日韩在线播放| 91福利国产精品| 99热99精品| 欧美猛男男办公室激情| 欧美日韩一本到| 欧美乱熟臀69xxxxxx| 538在线一区二区精品国产| 欧美三日本三级三级在线播放| 91精品1区2区| 欧美亚洲禁片免费| 欧美精品色一区二区三区| 欧美精品乱人伦久久久久久| 欧美一区欧美二区| 欧美不卡视频一区| 久久九九久精品国产免费直播| 久久精品视频一区| 自拍偷拍亚洲激情| 亚洲成人在线免费| 久久99精品久久久| 成人ar影院免费观看视频| 色先锋资源久久综合| 91精品国产入口在线| 久久久久久久久久久电影| 国产精品热久久久久夜色精品三区| 国产精品传媒视频| 亚洲成人你懂的| 精品一区免费av| 一本久久a久久精品亚洲| 欧美人与禽zozo性伦| 久久久久国产精品免费免费搜索| 中文字幕亚洲一区二区av在线| 亚洲一二三专区| 九一九一国产精品| 91国偷自产一区二区三区成为亚洲经典| 91精品国产综合久久精品图片 | 亚洲欧美日本在线| 蜜桃免费网站一区二区三区| 成人av高清在线| 欧美精品自拍偷拍动漫精品| 日本一区二区三区电影| 国产精品羞羞答答xxdd| 欧美日韩午夜在线视频| 久久久久久久免费视频了| 午夜av电影一区| 91麻豆视频网站| 国产日韩高清在线| 奇米一区二区三区av| 91免费视频网| 国产亚洲精品久| 日本中文字幕一区| 日本久久一区二区三区| 国产精品免费久久久久| 国内国产精品久久| 6080午夜不卡| 一区二区三区免费看视频| 成人综合在线网站| 久久精品亚洲精品国产欧美| 日韩成人一级大片| 欧美日韩一级黄| 一区二区三区中文在线| heyzo一本久久综合| 久久久久99精品国产片| 麻豆精品在线观看| 日韩欧美一卡二卡| 欧美96一区二区免费视频| 欧美日韩综合色| 亚洲一区二区三区精品在线| 91麻豆产精品久久久久久| 奇米777欧美一区二区| 欧美日韩一区在线观看| 亚洲综合无码一区二区| 欧洲亚洲国产日韩| 亚洲综合在线五月| 欧美在线播放高清精品| 香蕉成人伊视频在线观看| 欧美在线free| 日韩福利视频网| 91精品国产色综合久久不卡电影 | 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美国产午夜精品| 另类小说一区二区三区| 久久蜜桃一区二区| 国产白丝精品91爽爽久久| 国产欧美1区2区3区| 97成人超碰视| 亚洲一区在线视频观看| 日韩一区二区三区视频| 国产精品白丝jk黑袜喷水| 亚洲国产精品黑人久久久 | 亚洲一二三四久久| 欧美日本在线播放| 九九热在线视频观看这里只有精品| 精品91自产拍在线观看一区| 国产不卡在线一区| 亚洲激情男女视频| 这里只有精品电影| 国模大尺度一区二区三区| 国产精品久久久久天堂| 欧美日韩一区二区三区高清| 久久精品国产澳门| 国产精品成人网| 欧美日韩精品欧美日韩精品| 久久99精品久久只有精品| 1000精品久久久久久久久| 欧美精品18+| 国产成人精品亚洲午夜麻豆| 亚洲综合久久av| 久久伊人中文字幕| 色呦呦日韩精品| 国产综合久久久久久久久久久久| 亚洲欧美一区二区视频| 欧美一三区三区四区免费在线看| 国产精品综合二区| 亚洲成人你懂的| 国产精品国产三级国产普通话蜜臀 | 色婷婷综合视频在线观看| 美国三级日本三级久久99| 亚洲欧美一区二区三区孕妇| 欧美mv日韩mv| 欧美日韩亚洲综合在线| 福利电影一区二区三区| 久久精品国产色蜜蜜麻豆| 亚洲黄网站在线观看| 久久久久久久久97黄色工厂| 在线观看91av| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 精品久久久久久最新网址| 色诱视频网站一区| 成人毛片视频在线观看| 蜜桃久久av一区| 亚洲高清免费在线| 一区二区三区中文在线| **欧美大码日韩| 国产色91在线| 久久综合成人精品亚洲另类欧美 | 狠狠v欧美v日韩v亚洲ⅴ| 午夜日韩在线电影| 亚洲综合久久久久| 亚洲免费三区一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产精品一区二区在线播放| 亚洲成人综合在线| 亚洲精品日产精品乱码不卡| 久久久久久久综合日本| 久久久一区二区三区捆绑**| 精品国精品国产尤物美女| 欧美一三区三区四区免费在线看 | 欧美一区二视频| 在线观看欧美黄色| 色老汉av一区二区三区| 色婷婷亚洲婷婷| 欧美性受xxxx黑人xyx性爽| 一本久久a久久精品亚洲| 日本黄色一区二区| 欧美亚洲综合网| 欧美综合欧美视频| 欧美精品一二三区| 日韩三级.com| 久久综合九色综合97_久久久| 91麻豆精品国产91久久久久久久久 | 粉嫩av亚洲一区二区图片| 国产精品影音先锋| 成人av小说网| 91国在线观看| 欧美日韩精品专区| 精品久久久久av影院 | 国产精品久久久久7777按摩| 国产精品国产三级国产有无不卡| 亚洲欧洲美洲综合色网| 亚洲人一二三区| 一二三四区精品视频| 日韩精品福利网| 美国三级日本三级久久99| 国产精品中文字幕日韩精品| 99久久精品久久久久久清纯| 欧美中文字幕一区二区三区| 91麻豆精品国产自产在线观看一区| 日韩精品资源二区在线| 国产欧美一区二区精品秋霞影院| 日韩理论在线观看| 日韩精品成人一区二区三区| 国产乱人伦精品一区二区在线观看 | 国产精品一级二级三级| av在线播放一区二区三区| 欧美理论电影在线| 国产网红主播福利一区二区| 亚洲欧美日韩国产综合在线| 99久久免费国产| 欧美高清dvd| 国产精品乱码久久久久久| 亚洲不卡在线观看| 国产·精品毛片| 在线成人av影院| 国产精品伦一区| 麻豆精品在线看| 欧美中文字幕一区| 日本一区二区成人| 久久国产精品露脸对白| 欧美吞精做爰啪啪高潮|