⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avrsms_api.lst

📁 SMS傳送Sourcode,compiler with C,AT command
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
#                                                      24/Sep/2005  02:15:52 #
# IAR Atmel AVR C/C++ Compiler V4.10A/W32, Evaluation Version                #
# Copyright 1996-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Source file  =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\A #
#                    VRSMS_api.c                                             #
#    Command line =  --cpu=m128 -ms -o "C:\Documents and                     #
#                    Settings\vemund\Desktop\AVRGSM\Debug\Obj\" -lCN         #
#                    "C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\ #
#                    List\" -lA "C:\Documents and                            #
#                    Settings\vemund\Desktop\AVRGSM\Debug\List\" -y          #
#                    --initializers_in_flash -z3 --no_cse --no_inline        #
#                    --no_code_motion --no_cross_call --no_clustering        #
#                    --no_tbaa --debug -DENABLE_BIT_DEFINITIONS -e -I        #
#                    D:\Programs\iar\avr\INC\ -I                             #
#                    D:\Programs\iar\avr\INC\CLIB\ --eeprom_size 4096        #
#                    "C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\ #
#                    AVRSMS_api.c"                                           #
#    List file    =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\L #
#                    ist\AVRSMS_api.lst                                      #
#    Object file  =  C:\Documents and Settings\vemund\Desktop\AVRGSM\Debug\O #
#                    bj\AVRSMS_api.r90                                       #
#                                                                            #
#                                                                            #
##############################################################################

C:\Documents and Settings\vemund\Desktop\AVRGSM\Files\AVRSMS_api.c
      1          /*! \file ********************************************************************
      2          *
      3          * Atmel Corporation
      4          *
      5          * - File              : AVRSMS_api.c
      6          * - Compiler          : IAR EWAAVR 3.20C
      7          *
      8          * - Support mail      : avr@atmel.com
      9          *
     10          * - Supported devices : The example is written for ATmega169
     11          *
     12          *
     13          * - AppNote           : AVR323 - Interfacing Cellphones
     14          *
     15          * - Description       : Example of how to use AVR Butterfly as Mobilephone controller
     16          *
     17          * $Revision: 1.1 $
     18          * $Date: Tuesday, November 08, 2005 12:26:18 UTC $
     19          *****************************************************************************/
     20          #ifdef S_SPLINT_S
     21            #include"splint.h"
     22          #endif
     23          
     24          //Includes
     25          #include<inavr.h>
     26          #include"AVRSMS_com.h"
     27          #include"AVRSMS_zip.h"
     28          #include"AVRSMS_header.h"

   \                                 In segment NEAR_F, align 1, keep-with-next
   \   unsigned char const __flash PDU_HEADER[25]
   \                     PDU_HEADER:
   \   00000000   303031303030       DB 48, 48, 48, 49, 48, 48, 48, 65, 56, 49, 55, 52, 51, 57, 48, 50, 49
   \              413031383437
   \              3933323031  
   \   00000011   343830343030       DB 56, 52, 52, 48, 48, 48, 48, 0
   \              0030        
     29          #include"AVRSMS_tools.h"
     30          
     31          
     32          //Private function prototype
     33          int API_check_acknowledge( void );
     34          
     35          
     36          extern int rx_ack;      //Variable from AVRSMS_com.c
     37          
     38          
     39          //AT-Command set used

   \                                 In segment NEAR_F, align 1, keep-with-next
     40          const unsigned char __flash ATE0[]                    = "ATE0\r\n";               //Echo off
   \                     ATE0:
   \   00000000   544130450A0D       DB "ATE0\015\012"
   \              00          

   \                                 In segment NEAR_F, align 1, keep-with-next
     41          const unsigned char __flash AT_CNMI[]                 = "AT+CNMI=1,1,,,1\r\n";    //Identification of new sms
   \                     AT_CNMI:
   \   00000000   5441432B4D4E       DB "AT+CNMI=1,1,,,1\015\012"
   \              3D492C312C31
   \              2C2C0D31000A

   \                                 In segment NEAR_F, align 1, keep-with-next
     42          const unsigned char __flash AT_CPMS[]                 = "AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n"; //Preferred storage
   \                     AT_CPMS:
   \   00000000   5441432B4D50       DB "AT+CPMS=\"ME\",\"ME\",\"ME\"\015\012"
   \              3D534D222245
   \              222C454D2C22
   \              4D2222450A0D
   \              00          

   \                                 In segment NEAR_F, align 1, keep-with-next
     43          const unsigned char __flash AT_CMGD[]                 = "AT+CMGD=";      //Delete message at index
   \                     AT_CMGD:
   \   00000000   5441432B474D       DB "AT+CMGD="
   \              3D4400      

   \                                 In segment NEAR_F, align 1, keep-with-next
     44          const unsigned char __flash AT_CMGR[]                 = "AT+CMGR="; //Read from index               //Echo off
   \                     AT_CMGR:
   \   00000000   5441432B474D       DB "AT+CMGR="
   \              3D5200      

   \                                 In segment NEAR_F, align 1, keep-with-next
     45          const unsigned char __flash AT_CMGS[]                 = "AT+CMGS=";               //Echo off
   \                     AT_CMGS:
   \   00000000   5441432B474D       DB "AT+CMGS="
   \              3D5300      

   \                                 In segment NEAR_F, align 1, keep-with-next
     46          const unsigned char __flash CRLF[]                    = "\r\n";               //Carrige return Line feed
   \                     CRLF:
   \   00000000   0A0D00             DB "\015\012"
     47          
     48          

   \                                 In segment NEAR_Z, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_Z>`
     49          unsigned char msgbuff[161];
   \                     msgbuff:
   \   00000000                      DS 161

   \                                 In segment NEAR_I, align 1, keep-with-next
   \   00000000                      REQUIRE `?<Segment init: NEAR_I>`
     50          unsigned char *ziped = "E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E17018";
   \                     ziped:
   \   00000000                      DS 2
   \   00000002                      REQUIRE `?<Initializer for ziped>`
     51          
     52          //Phone setup

   \                                 In segment CODE, align 2, keep-with-next
     53          int API_phoneinit( void )
   \                     API_phoneinit:
     54          {
     55            COM_rx_reset( );                      //Reset system
   \   00000000   ........           CALL    COM_rx_reset
     56            COM_setSearchString( 0 );                 //Set OK to be search string
   \   00000004   E000               LDI     R16, 0
   \   00000006   ........           CALL    COM_setSearchString
     57            COM_putsf( ATE0 );                   //Send turn echo off
   \   0000000A   ....               LDI     R16, LOW(ATE0)
   \   0000000C   ....               LDI     R17, (ATE0) >> 8
   \   0000000E   ........           CALL    COM_putsf
     58            COM_rx_on( );                         //Receiver on
   \   00000012   ........           CALL    COM_rx_on
     59          
     60            if( API_check_acknowledge() > 0 )      //Echo off = OK
   \   00000016   ....               RCALL   API_check_acknowledge
   \   00000018   3001               CPI     R16, 1
   \   0000001A   4010               SBCI    R17, 0
   \   0000001C   F0EC               BRLT    ??API_phoneinit_0
     61            {
     62              COM_putsf(AT_CPMS);                //Send preferred storage
   \   0000001E   ....               LDI     R16, LOW(AT_CPMS)
   \   00000020   ....               LDI     R17, (AT_CPMS) >> 8
   \   00000022   ........           CALL    COM_putsf
     63              COM_rx_on( );                       //Receiver on
   \   00000026   ........           CALL    COM_rx_on
     64          
     65              if( API_check_acknowledge() > 0 )   //Preferred storage = OK
   \   0000002A   ....               RCALL   API_check_acknowledge
   \   0000002C   3001               CPI     R16, 1
   \   0000002E   4010               SBCI    R17, 0
   \   00000030   F084               BRLT    ??API_phoneinit_1
     66              {
     67                COM_putsf(AT_CNMI);              //Send preferred indication of new messages
   \   00000032   ....               LDI     R16, LOW(AT_CNMI)
   \   00000034   ....               LDI     R17, (AT_CNMI) >> 8
   \   00000036   ........           CALL    COM_putsf
     68                COM_rx_on( );                     //Receiver on
   \   0000003A   ........           CALL    COM_rx_on
     69          
     70                if( API_check_acknowledge() > 0 )  //Preferred indication = OK
   \   0000003E   ....               RCALL   API_check_acknowledge
   \   00000040   3001               CPI     R16, 1
   \   00000042   4010               SBCI    R17, 0
   \   00000044   F01C               BRLT    ??API_phoneinit_2
     71                {
     72                  return 1;
   \   00000046   E001               LDI     R16, 1
   \   00000048   E010               LDI     R17, 0
   \   0000004A   9508               RET
     73                }
     74          
     75                else                              //Preferred indication != OK
     76                {
     77                  return -2;
   \                     ??API_phoneinit_2:
   \   0000004C   EF0E               LDI     R16, 254
   \   0000004E   EF1F               LDI     R17, 255
   \   00000050   9508               RET
     78                }
     79              }
     80          
     81              else                                //Preferred storage != OK
     82              {
     83                return -1;
   \                     ??API_phoneinit_1:
   \   00000052   EF0F               LDI     R16, 255
   \   00000054   EF1F               LDI     R17, 255
   \   00000056   9508               RET
     84              }
     85            }
     86          
     87            else                                  //Echo off != OK
     88            {
     89              return 0;
   \                     ??API_phoneinit_0:
   \   00000058   E000               LDI     R16, 0
   \   0000005A   E010               LDI     R17, 0
   \   0000005C   9508               RET
     90            }
     91          }
     92          
     93          

   \                                 In segment CODE, align 2, keep-with-next
     94          int API_deletemsg( int index )        //Delete message from index
   \                     API_deletemsg:
     95          {
   \   00000000   939A               ST      -Y, R25
   \   00000002   938A               ST      -Y, R24
   \   00000004   01C8               MOVW    R25:R24, R17:R16
     96            COM_rx_reset( );                    //Reset system
   \   00000006   ........           CALL    COM_rx_reset
     97            COM_setSearchString( 0 );               //Set OK to be search string
   \   0000000A   E000               LDI     R16, 0
   \   0000000C   ........           CALL    COM_setSearchString
     98            COM_putsf( AT_CMGD );               //Delete message
   \   00000010   ....               LDI     R16, LOW(AT_CMGD)
   \   00000012   ....               LDI     R17, (AT_CMGD) >> 8
   \   00000014   ........           CALL    COM_putsf
     99            COM_put_integer( index );           //@index
   \   00000018   018C               MOVW    R17:R16, R25:R24
   \   0000001A   ........           CALL    COM_put_integer
    100            COM_putsf( CRLF );                  //CR+LF
   \   0000001E   ....               LDI     R16, LOW(CRLF)
   \   00000020   ....               LDI     R17, (CRLF) >> 8
   \   00000022   ........           CALL    COM_putsf
    101            COM_rx_on( );                       //Receiver on

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -