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

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

?? main.lst

?? LPC21XX的I2C與SPI部份的通迅實現源代碼.
?? LST
?? 第 1 頁 / 共 2 頁
字號:
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:41:59  PAGE 1   


ARM COMPILER V2.00f, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe main.c THUMB OPTIMIZE(7,SPEED) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          /************************************************************/
    2          /* PROJECT NAME: I2C                                        */
    3          /* Project:      LPC2100 Training course                    */
    4          /* Engineer:     T Martin      tmartin@hitex.co.uk          */
    5          /* Filename:     MAIN.C                                     */
    6          /* Language:     C                                          */
    7          /* Compiler:     Keil ARM   V1.3                            */
    8          /* Assembler:                                               */
    9          /*                                                          */
   10          /************************************************************/
   11          /* COPYRIGHT: Hitex UK Ltd      2004                        */
   12          /* LICENSE:   THIS VERSION CREATED FOR FREE DISTRIBUTION    */
   13          /************************************************************/
   14          /* Function:                                                */
   15          /*                                                          */
   16          /* Interrupt driven I2C example for LPC2106                 */
   17          /*                                                          */
   18          /* The Transfer byte routine starts a single byte transfer  */
   19          /*  on the I2C bus. The development board has two port      */
   20          /* expanders one at address 0x42 with a 7 segment LCD a     */
   21          /* second at 0x41 with a four switch header. The code reads */
   22          /* the switches and writes the pattern to the LED's         */
   23          /*                                                          */  
   24          /* Oscillator frequency 14.7456 Mhz                         */
   25          /* Target board Ashling EVBA7                               */
   26          /************************************************************/
   27          
   28          #include <LPC210x.H> 
   29          #include <stdarg.h>
   30          
   31          void I2CISR (void)  __irq ;                                                                         //I2C interrupt routine
   32          void I2CTransferByte(unsigned int I2CAddr,unsigned char MemAddr,unsigned char count,...);           //Background 
             -call to start master send and receive byte transfers
   33          
   34          unsigned char   message[4] = {0x01,0x02,0x03,0x04};                                                 
   35          unsigned char   messageIn[4];
   36          unsigned char   *I2CData,
   37                          I2Counter,
   38                          I2CAddress,
   39                          MemAddress,
   40                          lock;       //Define Function prototypes and Global variables
   41          
   42          
   43          int main(void)
   44          {
   45   1      
   46   1      lock = 0;                                   //Initilise the lock flag
   47   1      
   48   1      VICVectCntl1 = 0x00000029;                  //select a priority slot for a given interrupt
   49   1      VICVectAddr1 = (unsigned)I2CISR;            //pass the address of the IRQ into the VIC slot
   50   1      VICIntEnable = 0x00000200;                  //enable interrupt
   51   1      
   52   1      PINSEL0      = 0x50;                        //Switch GPIO to I2C pins
   53   1      
   54   1      I2SCLH       = 0x08;                        //Set bit rate 14.7456Mhz/VPBDIV+SCLH+SCLL = 14.7456/4+8+8 = 57.6Khz
   55   1      I2SCLL       = 0x08;
   56   1      
   57   1      I2CTransferByte(0x40,0,4,message);          //write data to the I2C Memory
   58   1      I2CTransferByte(0x40,0,0);                  //set address to zero
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:41:59  PAGE 2   

   59   1      I2CTransferByte(0x41,0,4,messageIn);        //read back data
   60   1      
   61   1      while(1)
   62   1      {
   63   2      ;
   64   2      }
   65   1      }
   66          
   67          
   68          void I2CTransferByte(unsigned int I2CAddr,unsigned char MemAddr,unsigned char count,...)
   69          {
   70   1      va_list ap;
   71   1      va_start(ap,count);
   72   1      
   73   1      while(lock == 1)                            //Wait for interrupt to signal end of I2C activity
   74   1      {
   75   2      ;
   76   2      }
   77   1      lock        = 1;                            //Set I2C bus as active
   78   1      
   79   1      I2CAddress  = I2CAddr;                      //Place address and data in Globals to be used by the interrupt
   80   1      if(count >0)
   81   1      {
   82   2      I2CData     = va_arg(ap,unsigned char *);
   83   2      }
   84   1      I2Counter   = count;
   85   1      MemAddress  = MemAddr;
   86   1      I2CONCLR    = 0x000000FF;                   //Clear all I2C settings
   87   1      I2CONSET    = 0x00000040;                   //Enable the I2C interface
   88   1      I2CONSET    = 0x00000020;                   //Start condition
   89   1      va_end(ap);
   90   1      }
   91          
   92          
   93          void I2CISR (void)  __irq                       //I2C interrupt routine
   94          {
   95   1      
   96   1      switch (I2STAT)                             //Read result code and switch to next action
   97   1      {
   98   2      // Start and Send byte conditions
   99   2      
  100   2      case ( 0x08):                               //Start bit
  101   2      I2CONCLR    = 0x20;                         //Clear start bit
  102   2      I2DAT       = I2CAddress;                   //Send address and write bit
  103   2      break;
  104   2      
  105   2      case (0x18):                                //Slave address+W, ACK
  106   2      I2DAT       = MemAddress;                   //Write Mem,ory start address to tx register
  107   2      break;
  108   2      
  109   2      case (0x20):                                //Salve address +W, Not ACK
  110   2      I2DAT       = I2CAddress;                   //Resend address and write bi
  111   2      break;
  112   2      
  113   2      case (0x28):
  114   2      if(I2Counter-->0)                               //Data sent, Ack
  115   2      {
  116   3      I2DAT       = *I2CData;                     //Write data to tx register
  117   3      I2CData++;
  118   3      }
  119   2      else
  120   2      {
  121   3      I2CONSET    = 0x10;                         //Stop condition
  122   3      lock = 0;                                   //Signal end of I2C activity
  123   3      }
  124   2      break;
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:41:59  PAGE 3   

  125   2      
  126   2      case (0x30) :                               //Data sent, NOT Ack
  127   2      I2DAT       = *I2CData;                     //Write data to tx register
  128   2      break;
  129   2      
  130   2      
  131   2      //Receive byte conditions
  132   2      
  133   2      case (0x40) :                               //Slave Address +R, ACK
  134   2      I2CONSET    = 0x04;                         //Enable ACK for data byte
  135   2      break;
  136   2      
  137   2      case (0x48) :                               //Slave Address +R, Not Ack
  138   2      I2CONSET    = 0x20;                         //Resend Start condition
  139   2      break;
  140   2      
  141   2      case (0x50) :                               //Data Received, ACK 
  142   2      if(--I2Counter>0)
  143   2      {
  144   3      *I2CData    = I2DAT;
  145   3      I2CData++;
  146   3      }
  147   2      else
  148   2      {
  149   3      I2CONSET    = 0x10;                         //Stop condition
  150   3      lock        = 0;                            //Signal end of I2C activity                            
  151   3      }
  152   2      break;
  153   2      
  154   2      case (0x58):                                //Data Received, Not Ack
  155   2      I2CONSET    = 0x20;                         // Resend Start condition
  156   2      break;
  157   2      
  158   2      default :
  159   2      break;
  160   2      
  161   2      }
  162   1      
  163   1      I2CONCLR    = 0x08;                         //Clear I2C interrupt flag
  164   1      VICVectAddr = 0x00000000;                   //Clear interrupt in 
  165   1      
  166   1      }
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:41:59  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         I2CISR?A
 PUBLIC         I2CTransferByte?T
 PUBLIC         main
 PUBLIC         message
 PUBLIC         messageIn
 PUBLIC         I2CData
 PUBLIC         I2Counter
 PUBLIC         I2CAddress
 PUBLIC         MemAddress
 PUBLIC         lock



*** DATA SEGMENT '?DT0?main':
 00000000          I2CData:
 00000000            DS          4
 00000004          message:
 00000004           BEGIN_INIT
 00000004  01        DB          0x1
 00000005  02        DB          0x2
 00000006  03        DB          0x3
 00000007  04        DB          0x4
 00000008           END_INIT
 00000008          messageIn:
 00000008            DS          4
 0000000C          I2Counter:
 0000000C            DS          1
 0000000D          I2CAddress:
 0000000D            DS          1
 0000000E          MemAddress:
 0000000E            DS          1
 0000000F          lock:
 0000000F            DS          1



*** CODE SEGMENT '?PR?main?main':
   43: int main(void)
 00000000  B500      PUSH        {LR}
   46: lock = 0;                                   //Initilise the lock flag
 00000002  2100      MOV         R1,#0x0
 00000004  4800      LDR         R0,=lock ; lock
 00000006  7001      STRB        R1,[R0,#0x0] ; lock
   48: VICVectCntl1 = 0x00000029;                  //select a priority slot for a given interrupt
 00000008  2129      MOV         R1,#0x29
 0000000A  4800      LDR         R0,=0xFFFFF204
 0000000C  6001      STR         R1,[R0,#0x0]
   49: VICVectAddr1 = (unsigned)I2CISR;            //pass the address of the IRQ into the VIC slot
 0000000E  4900      LDR         R1,=I2CISR?A ; I2CISR?A
 00000010  4800      LDR         R0,=0xFFFFF104
 00000012  6001      STR         R1,[R0,#0x0]
   50: VICIntEnable = 0x00000200;                  //enable interrupt
 00000014  4980      LDR         R1,=0x200
 00000016  4800      LDR         R0,=0xFFFFF010
 00000018  6001      STR         R1,[R0,#0x0]
   52: PINSEL0      = 0x50;                        //Switch GPIO to I2C pins
 0000001A  2150      MOV         R1,#0x50
 0000001C  4800      LDR         R0,=0xE002C000
 0000001E  6001      STR         R1,[R0,#0x0]
   54: I2SCLH          = 0x08;                        //Set bit rate 14.7456Mhz/VPBDIV+SCLH+SCLL = 14.7456/4+8+8 = 57.6Khz
 00000020  2108      MOV         R1,#0x8
 00000022  4800      LDR         R0,=0xE001C010
 00000024  8001      STRH        R1,[R0,#0x0]
ARM COMPILER V2.00f,  main                                                                 20/02/05  12:41:59  PAGE 5   

   55: I2SCLL          = 0x08;
 00000026  2108      MOV         R1,#0x8
 00000028  4800      LDR         R0,=0xE001C014
 0000002A  8001      STRH        R1,[R0,#0x0]
   57: I2CTransferByte(0x40,0,4,message);          //write data to the I2C Memory
 0000002C  4800      LDR         R3,=message ; message
 0000002E  2040      MOV         R0,#0x40
 00000030  2100      MOV         R1,#0x0
 00000032  2204      MOV         R2,#0x4
 00000034  F7FF      BL          I2CTransferByte?T  ; T=0x0001  (1)
 00000036  FFE4      BL          I2CTransferByte?T  ; T=0x0001  (2)
   58: I2CTransferByte(0x40,0,0);                  //set address to zero
 0000003A  2040      MOV         R0,#0x40
 0000003C  2100      MOV         R1,#0x0
 0000003E  2200      MOV         R2,#0x0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久99水蜜桃 | 国产成人无遮挡在线视频| 成人av资源网站| 日韩视频免费观看高清完整版 | 91久久精品一区二区| 日韩免费观看2025年上映的电影 | 欧美亚洲国产一卡| 久久女同互慰一区二区三区| 亚洲精选一二三| 成人精品高清在线| 久久综合色婷婷| 奇米精品一区二区三区在线观看一| 成人97人人超碰人人99| 精品99久久久久久| 欧美a一区二区| 欧美三级资源在线| 亚洲欧美日韩精品久久久久| 国产激情一区二区三区四区 | 91精品国产91久久久久久最新毛片| 欧美韩日一区二区三区| 久久精品国产色蜜蜜麻豆| 欧美久久婷婷综合色| 亚洲午夜免费视频| 欧美体内she精视频| 亚洲欧洲日本在线| 成人性生交大片免费看视频在线| 日韩精品中文字幕一区| 麻豆精品在线看| 日韩欧美国产三级电影视频| 免费人成黄页网站在线一区二区| 欧美日韩亚洲国产综合| 亚洲国产精品久久不卡毛片| 91视频免费看| 午夜久久电影网| 欧美一区二区三区小说| 蜜桃av一区二区| 日韩欧美的一区二区| 国产制服丝袜一区| 国产人成亚洲第一网站在线播放 | 亚洲国产成人自拍| 成人黄色在线视频| 亚洲欧美日韩小说| 欧美日韩一区 二区 三区 久久精品| 亚洲最色的网站| 欧美精品久久一区| 国产一区二区0| 国产精品视频免费看| 91免费国产在线观看| 亚洲成av人片一区二区三区| 欧美一区二区三区视频| 精久久久久久久久久久| 国产精品伦理一区二区| 欧美色视频在线| 激情六月婷婷久久| 欧美成人一区二区三区在线观看| 青娱乐精品在线视频| 久久精品网站免费观看| 成人高清免费在线播放| 亚洲国产精品精华液网站| 欧美一级高清片| 国产高清视频一区| 亚洲精品第一国产综合野| 欧美精品日日鲁夜夜添| 国产精品1区二区.| 亚洲午夜av在线| 久久网这里都是精品| 在线看不卡av| 韩国精品久久久| 一区二区三区日本| 国产真实乱子伦精品视频| 91福利社在线观看| 麻豆精品一区二区综合av| 国产精品不卡视频| 日韩欧美视频在线| 日本丶国产丶欧美色综合| 蜜臀av一区二区在线免费观看| 中文av一区二区| 欧美一二三四区在线| 99久久精品费精品国产一区二区| 日本亚洲最大的色成网站www| 日本一区二区三级电影在线观看| 欧美色爱综合网| 成人精品免费看| 蜜桃视频一区二区三区在线观看| 综合中文字幕亚洲| 26uuu精品一区二区| 欧美久久久一区| 95精品视频在线| 国产一区二区美女| 蜜桃视频在线观看一区二区| 亚洲精品高清视频在线观看| 久久色中文字幕| 欧美va日韩va| 8x福利精品第一导航| 99久久综合色| 国产成人精品免费在线| 秋霞影院一区二区| 亚洲成av人影院在线观看网| 亚洲人xxxx| 国产精品免费视频观看| xfplay精品久久| 亚洲精品一线二线三线| 欧美一二三四区在线| 在线成人av影院| 欧美日韩的一区二区| 色婷婷国产精品| 色综合色狠狠综合色| eeuss鲁一区二区三区| 国产经典欧美精品| 国产麻豆精品在线| 日韩欧美亚洲另类制服综合在线| 国产不卡在线视频| 国产精品18久久久久久久久| 久久99精品久久只有精品| 视频一区欧美精品| 男女男精品网站| 激情伊人五月天久久综合| 美国欧美日韩国产在线播放| 青青草97国产精品免费观看 | 一本色道久久综合精品竹菊| 不卡av免费在线观看| 99久久精品免费精品国产| 91啪九色porn原创视频在线观看| av电影天堂一区二区在线观看| 99视频国产精品| 欧美亚洲综合久久| 6080亚洲精品一区二区| 精品久久一区二区三区| 国产欧美日韩三级| 亚洲欧美日韩电影| 亚洲丶国产丶欧美一区二区三区| 午夜精品福利一区二区三区蜜桃| 天堂成人国产精品一区| 精品中文av资源站在线观看| 国产精品自拍一区| 91影院在线观看| 欧美军同video69gay| 久久婷婷成人综合色| 综合自拍亚洲综合图不卡区| 亚洲第一电影网| 韩国理伦片一区二区三区在线播放| 国产成人一区二区精品非洲| 97久久人人超碰| 欧美理论在线播放| 国产亚洲一区字幕| 亚洲成人激情综合网| 精品中文字幕一区二区| 91一区一区三区| 欧美一二三在线| 亚洲私人黄色宅男| 另类小说视频一区二区| www.久久久久久久久| 9191国产精品| 最新日韩在线视频| 日本美女一区二区三区视频| 国产白丝网站精品污在线入口| 欧美亚洲综合另类| 国产女人水真多18毛片18精品视频 | 色中色一区二区| 91精品国产综合久久久蜜臀粉嫩| 国产欧美一区二区精品仙草咪| 一区二区三区精品视频| 国产老妇另类xxxxx| 欧美日本乱大交xxxxx| 中文字幕不卡一区| 另类中文字幕网| 欧美色区777第一页| 国产精品久久久久aaaa樱花| 蜜桃视频免费观看一区| 在线观看欧美日本| 国产精品久久久久久久岛一牛影视| 日韩不卡一区二区三区| 91视频免费看| 国产精品久久久久久久第一福利 | 午夜欧美2019年伦理| 99精品国产91久久久久久| 精品久久久久一区二区国产| 亚洲永久精品国产| 99久久精品一区| 中文字幕av资源一区| 国产一区二区三区在线观看免费| 69久久夜色精品国产69蝌蚪网| 亚洲欧美日韩成人高清在线一区| 国产麻豆午夜三级精品| 欧美sm极限捆绑bd| 日韩电影免费在线看| 欧美日韩中文另类| 亚洲一区二区三区激情| 91免费视频观看| 亚洲精品成a人| 91麻豆123| 亚洲六月丁香色婷婷综合久久| 成人激情开心网| 中文字幕亚洲一区二区av在线 | 欧美情侣在线播放| 天天色天天操综合| 欧美一区二区三区喷汁尤物| 无码av免费一区二区三区试看| 欧美日韩高清一区二区不卡| 五月天网站亚洲|