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

📄 avrsms_api.s90

📁 SMS傳送Sourcode,compiler with C,AT command
💻 S90
📖 第 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\ /
//                    AVRSMS_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\ /
//                    List\AVRSMS_api.s90                                    /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME AVRSMS_api

        RTMODEL "__64bit_doubles", "disabled"
        RTMODEL "__cpu", "3"
        RTMODEL "__cpu_name", "ATmega128"
        RTMODEL "__enhanced_core", "enabled"
        RTMODEL "__has_elpm", "true"
        RTMODEL "__memory_model", "2"
        RTMODEL "__no_rampd", "enabled"
        RTMODEL "__rt_version", "3"

        RSEG CSTACK:DATA:NOROOT(0)
        RSEG RSTACK:DATA:NOROOT(0)

        EXTERN ?EPILOGUE_B4_L09
        EXTERN ?PROLOGUE4_L09
        EXTERN ?need_segment_init

        PUBWEAK `?<Segment init: NEAR_I>`
        PUBWEAK `?<Segment init: NEAR_Z>`
        PUBLIC API_check_acknowledge
        FUNCTION API_check_acknowledge,021203H
        LOCFRAME CSTACK, 2, STACK
        LOCFRAME RSTACK, 2, STACK
        PUBLIC API_deletemsg
        FUNCTION API_deletemsg,021203H
        LOCFRAME CSTACK, 2, STACK
        LOCFRAME RSTACK, 2, STACK
        PUBLIC API_phoneinit
        FUNCTION API_phoneinit,021203H
        LOCFRAME RSTACK, 2, STACK
        PUBLIC API_readmsg
        FUNCTION API_readmsg,021203H
        LOCFRAME CSTACK, 4, STACK
        LOCFRAME RSTACK, 2, STACK
        PUBLIC API_sendmsg
        FUNCTION API_sendmsg,021203H
        LOCFRAME CSTACK, 8, STACK
        LOCFRAME RSTACK, 2, STACK
        PUBLIC ATE0
        PUBLIC AT_CMGD
        PUBLIC AT_CMGR
        PUBLIC AT_CMGS
        PUBLIC AT_CNMI
        PUBLIC AT_CPMS
        PUBLIC CRLF
        PUBLIC PDU_HEADER
        PUBWEAK __?EEARH
        PUBWEAK __?EEARL
        PUBWEAK __?EECR
        PUBWEAK __?EEDR
        PUBLIC msgbuff
        PUBLIC ziped
        
        CFI Names cfiNames0
        CFI StackFrame CFA_Y Y DATA
        CFI StackFrame CFA_SP SP DATA
        CFI VirtualResource ?RetPad:1, ?RetHigh:8, ?RetLow:8, ?Ret:17
        CFI Resource R0:8, R1:8, R2:8, R3:8, R4:8, R5:8, R6:8, R7:8, R8:8, R9:8
        CFI Resource R10:8, R11:8, R12:8, R13:8, R14:8, R15:8, R16:8, R17:8
        CFI Resource R18:8, R19:8, R20:8, R21:8, R22:8, R23:8, R24:8, R25:8
        CFI Resource R26:8, R27:8, R28:8, R29:8, R30:8, R31:8
        CFI Resource ?RetHighByteMask:8, SP:16, SPH:8, SPL:8, Y:16
        CFI ResourceParts ?Ret ?RetHigh, ?RetLow, ?RetPad
        CFI ResourceParts SP SPH, SPL
        CFI ResourceParts Y R29, R28
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign 1
        CFI ReturnAddress ?Ret CODE
        CFI CFA_Y Y+0
        CFI CFA_SP SP+2
        CFI ?RetPad 0
        CFI ?RetHigh and(load(1, DATA, sub(CFA_SP, 1)), ?RetHighByteMask)
        CFI ?RetLow Frame(CFA_SP, 0)
        CFI ?Ret Concat
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 SameValue
        CFI R13 SameValue
        CFI R14 SameValue
        CFI R15 SameValue
        CFI R16 Undefined
        CFI R17 Undefined
        CFI R18 Undefined
        CFI R19 Undefined
        CFI R20 Undefined
        CFI R21 Undefined
        CFI R22 Undefined
        CFI R23 Undefined
        CFI R24 SameValue
        CFI R25 SameValue
        CFI R26 SameValue
        CFI R27 SameValue
        CFI R28 Undefined
        CFI R29 Undefined
        CFI R30 Undefined
        CFI R31 Undefined
        CFI ?RetHighByteMask SameValue
        CFI SPH Undefined
        CFI SPL Undefined
        CFI EndCommon cfiCommon0
        
        EXTERN COM_rx_reset
        FUNCTION COM_rx_reset,0202H
        EXTERN COM_setSearchString
        FUNCTION COM_setSearchString,0202H
        EXTERN COM_putsf
        FUNCTION COM_putsf,0202H
        EXTERN COM_rx_on
        FUNCTION COM_rx_on,0202H
        EXTERN COM_put_integer
        FUNCTION COM_put_integer,0202H
        EXTERN ZIP_compress
        FUNCTION ZIP_compress,0202H
        EXTERN ZIP_itoh
        FUNCTION ZIP_itoh,0202H
        EXTERN COM_puts
        FUNCTION COM_puts,0202H
        EXTERN COM_putchar
        FUNCTION COM_putchar,0202H
        EXTERN TOOLS__decodeCMGR
        FUNCTION TOOLS__decodeCMGR,0202H
        EXTERN ZIP_decompress
        FUNCTION ZIP_decompress,0202H
        EXTERN COM_rx_off
        FUNCTION COM_rx_off,0202H
        EXTERN rx_ack

// 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"

        RSEG NEAR_F:CODE:NOROOT(0)
// unsigned char const __flash PDU_HEADER[25]
PDU_HEADER:
        DB 48, 48, 48, 49, 48, 48, 48, 65, 56, 49, 55, 52, 51, 57, 48, 50, 49
        DB 56, 52, 52, 48, 48, 48, 48, 0
//   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

        RSEG NEAR_F:CODE:NOROOT(0)
//   40 const unsigned char __flash ATE0[]                    = "ATE0\r\n";               //Echo off
ATE0:
        DB "ATE0\015\012"

        RSEG NEAR_F:CODE:NOROOT(0)
//   41 const unsigned char __flash AT_CNMI[]                 = "AT+CNMI=1,1,,,1\r\n";    //Identification of new sms
AT_CNMI:
        DB "AT+CNMI=1,1,,,1\015\012"

        RSEG NEAR_F:CODE:NOROOT(0)
//   42 const unsigned char __flash AT_CPMS[]                 = "AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n"; //Preferred storage
AT_CPMS:
        DB "AT+CPMS=\"ME\",\"ME\",\"ME\"\015\012"

        RSEG NEAR_F:CODE:NOROOT(0)
//   43 const unsigned char __flash AT_CMGD[]                 = "AT+CMGD=";      //Delete message at index
AT_CMGD:
        DB "AT+CMGD="

        RSEG NEAR_F:CODE:NOROOT(0)
//   44 const unsigned char __flash AT_CMGR[]                 = "AT+CMGR="; //Read from index               //Echo off
AT_CMGR:
        DB "AT+CMGR="

        RSEG NEAR_F:CODE:NOROOT(0)
//   45 const unsigned char __flash AT_CMGS[]                 = "AT+CMGS=";               //Echo off
AT_CMGS:
        DB "AT+CMGS="

        RSEG NEAR_F:CODE:NOROOT(0)
//   46 const unsigned char __flash CRLF[]                    = "\r\n";               //Carrige return Line feed
CRLF:
        DB "\015\012"
//   47 
//   48 

        RSEG NEAR_Z:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_Z>`
//   49 unsigned char msgbuff[161];
msgbuff:
        DS 161

        RSEG NEAR_I:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_I>`
`?<Constant "E170381C0E87C3E170381...">`:
        DS 119
        REQUIRE `?<Initializer for <Constant "E170381C0E87C3E17`

        RSEG NEAR_I:DATA:NOROOT(0)
        REQUIRE `?<Segment init: NEAR_I>`
//   50 unsigned char *ziped = "E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E170381C0E87C3E17018";
ziped:
        DS 2
        REQUIRE `?<Initializer for ziped>`
//   51 
//   52 //Phone setup

        RSEG CODE:CODE:NOROOT(1)
//   53 int API_phoneinit( void )
API_phoneinit:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function API_phoneinit
//   54 {
//   55   COM_rx_reset( );                      //Reset system
        FUNCALL API_phoneinit, COM_rx_reset
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_setSearchString
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_putsf
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_rx_on
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, API_check_acknowledge
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_putsf
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_rx_on
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, API_check_acknowledge
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_putsf
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, COM_rx_on
        LOCFRAME RSTACK, 2, STACK
        FUNCALL API_phoneinit, API_check_acknowledge
        LOCFRAME RSTACK, 2, STACK
        CALL	COM_rx_reset
//   56   COM_setSearchString( 0 );                 //Set OK to be search string
        LDI	R16, 0
        CALL	COM_setSearchString
//   57   COM_putsf( ATE0 );                   //Send turn echo off
        LDI	R16, LOW(ATE0)
        LDI	R17, (ATE0) >> 8
        CALL	COM_putsf
//   58   COM_rx_on( );                         //Receiver on
        CALL	COM_rx_on
//   59 
//   60   if( API_check_acknowledge() > 0 )      //Echo off = OK
        RCALL	API_check_acknowledge
        CPI	R16, 1
        SBCI	R17, 0
        BRLT	??API_phoneinit_0
//   61   {
//   62     COM_putsf(AT_CPMS);                //Send preferred storage
        LDI	R16, LOW(AT_CPMS)
        LDI	R17, (AT_CPMS) >> 8
        CALL	COM_putsf
//   63     COM_rx_on( );                       //Receiver on
        CALL	COM_rx_on
//   64 

⌨️ 快捷键说明

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