اطلاعیه

Collapse
No announcement yet.

مشکلات sim900

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : مشکلات sim900

    اقا راه افتاد ممنون...اما من از وقفه استفاده نکردم فعلا کارم راه افتاده نمیدونم کجا باید استفاده کنم...!!؟؟

    دیدگاه


      پاسخ : مشکلات sim900

      نوشته اصلی توسط amirrenjer
      اقا راه افتاد ممنون...اما من از وقفه استفاده نکردم فعلا کارم راه افتاده نمیدونم کجا باید استفاده کنم...!!؟؟
      خب ببین وقتی میخوای پیام بخونی و مثلا بعدش یه رله روشن کنی(با کد) میگی اگر کد این بود برو فلان کار کن.
      یا اینکه وقتی فلان کد زده شد برو پیامت ارسال کن.
      کار سختی نیست کار کردن بهش

      دیدگاه


        پاسخ : مشکلات sim900

        1- خوب من دقیقا این کاراایی ک فرمودین رو امروز باش کردم اما نفهمیدم کجا ب کارم میا تا استفاده کنم!!!اما سعی میکنم یاد بگیرم ...جوابی از کد میگیرم متفاوته انگار میکرو تو ارتباط سریال مشکل داره!!(فک کنم حتما باید از وقفه استفاده کنم) :arrow:

        2- نمیدونم چرا عملکرد بورد وقتی ب پروگرامر وصله و روشنه تا وقتی ب تنهایی روشنه متفاوته !!!(مثلا تنها روشن باشه ،از ی تابع ب تایع دیگه میپره!! )

        دیدگاه


          پاسخ : مشکلات sim900

          سلام من از وقفه استفاده کردم اما نمیدونم چرا هیچ کاراکتری نمیگیره :eek:

          اینم کد:

          کد:
          #include <mega16a.h>
          #include <alcd.h>
          #include <stdlib.h>
          #include <delay.h>
          #include <stdio.h>
          #include <string.h>
          
          int i,res;
          
          
          void init_io();
          unsigned char usart_receiver();
          void sim900_power();
          void send_sms();
          void display_num();
          void compare();
          void sim900_power();
          
          
          unsigned char num[14];
          unsigned char temp[1];
          unsigned char buffer; 
          unsigned char my_num[14]="+989132921239";
          #define ctrl_z 0x1a
          #define enter 0x0d
          
          #ifndef RXB8
          #define RXB8 1
          #endif
          
          #ifndef TXB8
          #define TXB8 0
          #endif
          
          #ifndef UPE
          #define UPE 2
          #endif
          
          #ifndef DOR
          #define DOR 3
          #endif
          
          #ifndef FE
          #define FE 4
          #endif
          
          #ifndef UDRE
          #define UDRE 5
          #endif
          
          #ifndef RXC
          #define RXC 7
          #endif
          
          #define FRAMING_ERROR (1<<FE)
          #define PARITY_ERROR (1<<UPE)
          #define DATA_OVERRUN (1<<DOR)
          #define DATA_REGISTER_EMPTY (1<<UDRE)
          #define RX_COMPLETE (1<<RXC)
          
          // USART Receiver buffer
          #define RX_BUFFER_SIZE 64
          char rx_buffer[RX_BUFFER_SIZE];
          
          #if RX_BUFFER_SIZE <= 256
          unsigned char rx_wr_index,rx_rd_index,rx_counter;
          #else
          unsigned int rx_wr_index,rx_rd_index,rx_counter;
          #endif
          
          // This flag is set on USART Receiver buffer overflow
          bit rx_buffer_overflow;
          
          // USART Receiver interrupt service routine
          interrupt [USART_RXC] void usart_rx_isr(void)
          {
          char status,data;
          status=UCSRA;
          data=UDR;
          if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
            {
            rx_buffer[rx_wr_index++]=data;
          #if RX_BUFFER_SIZE == 256
            // special case for receiver buffer size=256
            if (++rx_counter == 0) rx_buffer_overflow=1;
          #else
            if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
            if (++rx_counter == RX_BUFFER_SIZE)
             {
             rx_counter=0;
             rx_buffer_overflow=1;
             }
          #endif
            }
          }
          
          #ifndef _DEBUG_TERMINAL_IO_
          // Get a character from the USART Receiver buffer
          #define _ALTERNATE_GETCHAR_
          #pragma used+
          char getchar(void)
          {
          char data;
          while (rx_counter==0);
          data=rx_buffer[rx_rd_index++];
          #if RX_BUFFER_SIZE != 256
          if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
          #endif
          #asm("cli")
          --rx_counter;
          #asm("sei")
          return data;
          }
          #pragma used-
          #endif
          
          // USART Transmitter buffer
          #define TX_BUFFER_SIZE 64
          char tx_buffer[TX_BUFFER_SIZE];
          
          #if TX_BUFFER_SIZE <= 256
          unsigned char tx_wr_index,tx_rd_index,tx_counter;
          #else
          unsigned int tx_wr_index,tx_rd_index,tx_counter;
          #endif
          
          // USART Transmitter interrupt service routine
          interrupt [USART_TXC] void usart_tx_isr(void)
          {
          if (tx_counter)
            {
            --tx_counter;
            UDR=tx_buffer[tx_rd_index++];
          #if TX_BUFFER_SIZE != 256
            if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
          #endif
            }
          }
          
          #ifndef _DEBUG_TERMINAL_IO_
          // Write a character to the USART Transmitter buffer
          #define _ALTERNATE_PUTCHAR_
          #pragma used+
          void putchar(char c)
          {
          while (tx_counter == TX_BUFFER_SIZE);
          #asm("cli")
          if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
            {
            tx_buffer[tx_wr_index++]=c;
          #if TX_BUFFER_SIZE != 256
            if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
          #endif
            ++tx_counter;
            }
          else
            UDR=c;
          #asm("sei")
          }
          #pragma used-
          #endif
          
          // Standard Input/Output functions
          //#include <stdio.h>
          
          // Declare your global variables here
          
          void main(void)
          {
          init_io();  
          
          sim900_power();
          
          PORTB=0x00;
          DDRB=0x00;
          PORTC=0x00;
          DDRC=0x00;
          PORTD=0x18;  
          DDRD=0x00;
          
           
          
          
          lcd_init(16);
          
          // Global enable interrupts
          #asm("sei")
          
          DDRC.5=1;
          PORTC.5=1;  
          while(1)
          {
          lcd_putsf("*READY FOR USE");
          
          
          buffer=getchar(); 
          if(buffer=='+')
          { 
          lcd_putsf("step 0 OK");
           }
          
          }
          
          }
          
          
          
          void sim900_power()
          {
          DDRA.6=1;
          PORTA.6=1;
          delay_ms(500);
          PORTA.6=0;
          }
          
          void init_io()
          {
          // USART initialization
          // Communication Parameters: 8 Data, 1 Stop, No Parity
          // USART Receiver: On
          // USART Transmitter: On
          // USART Mode: Asynchronous
          // USART Baud Rate: 9600
          
          UCSRA=0x00;
          UCSRB=0xD8;
          //UCSRB=0x98;
          UCSRC=0x86;
          UBRRH=0x00;
          UBRRL=0x33;
          }
          انگار روی یوزارت دیتایی رد و بدل نمیشه
          ممنون میشم راهنماییم کنید دوستان

          دیدگاه


            پاسخ : مشکلات sim900

            آقای amirrenjer عزیز شما میدونید کدهایی که تو برنامه نوشته شده چطور عمل میکنن ؟ منظورم اینه که از کارکرد برنامه گاهی دارید؟

            دیدگاه


              پاسخ : مشکلات sim900

              بله چطور؟البته الان قسمت while رو تغییر دادم درست شد :redface:

              کد:
              while(1)
              {
              
              for(i=0;i<2;i++)
              {
              while('+'!=getchar());
              }
              gets(num,12);
              lcd_clear();
              lcd_putsf("number :");
              lcd_gotoxy(0,1);
              lcd_puts(num);
              delay_ms(1500);
              lcd_clear();
              temp[1]='\0';
              temp[0]=num[11];
              lcd_puts(temp);
              delay_ms(2000);
              }

              دیدگاه


                پاسخ : مشکلات sim900

                وسطای برنامه دستور pragma used برای چی استفاده شده ممنون میشم اگر توضیح بدید خیلی جاها گشتم فایده نداشته یا اون خط #ifndef _DEBUG_TERMINAL_IO_

                تنها چیزی که از help کدویژن پیدا کردم این بود
                /* this #pragma directive will prevent the compiler from generating a
                warning that the function was declared, but not used in the program */
                #pragma used+
                /* library function prototypes */
                int sum(int a, int b);
                int mul(int a, int b);
                #pragma used-
                /* this #pragma directive will tell the compiler to compile/link the
                functions from the mylib.lib library */
                #pragma library mylib.lib


                که البته با این زبان دست و پا شکسته من چیز زیادی ازش متوجه نشدم :redface:

                دیدگاه


                  پاسخ : مشکلات sim900

                  اینارو میگی؟؟ :redface: درست نمیدونم

                  فقط میدونم ی سری دستور پیش پردازنده هستش ک ب کامپایلر اجازه میده ی سری دستوراتو فعال کنه و کدی ک مثلا تو کد ویژن نوشتی و توی یه کامپایلر سی اجرا کنی و بهت ارور نمیده!! ولی هشدار

                  میده ک نمیشناسه.

                  دیدگاه


                    پاسخ : مشکلات sim900

                    منظور شما این هشدار هست؟



                    برای شما هم این هشدار میاد؟
                    چون من پروژه کلخانه رو با sim900 اجرا کردم ولی تنها چیزی که روی lcd نمایش داده شد زمان بود یعنی فقط قسمتی از کل برنامه !
                    که زمان هم اصلا" تغییر نکرد

                    دیدگاه


                      پاسخ : مشکلات sim900

                      دوستان کسی با M95 یا M35 کار کرده؟؟؟؟
                      جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                      که کرد افسون و نیرنگش ملول از جان شیرینم

                      دیدگاه


                        پاسخ : مشکلات sim900

                        با سلام و قبولی طاعات

                        دوستان بنده مدتی هست که یک مدار چاپی با کامپوننت های میکرو،سیم900،رله و... مونتاژ کرده ام.اما حالا میبینم که مدار اتصال کوتاه شده است.و زمین با خروجی تنظیم شده ی رگولاتور ،با مقاومت 5 اهم ،متصل شده است!!

                        حالا هر چی تست میکنم نمیتونم پیدا کنم از کجا بهم متصل شدن.لحیم کاری ها صحیح انجام شده.

                        ممنون میشم کمکم کنید.
                        :agree:

                        دیدگاه


                          پاسخ : مشکلات sim900

                          یه sim900a دارم که شبکه رو اصلا پیدا نمیکنه و روی پین VCC سیم کارت هم هیچ ولتاژی نیست

                          قبل با برد راه انداز آماده مدار میبستم ولی گیرم نیومد و مجبوری ماژول خالی گرفتمو از مدار زیر استفاده کردمو یه برد براش زدم

                          الان هرچی پاور کی رو میزنم استاتوس 64ملی روشن و 800 میلی خاموشه

                          دیدگاه


                            پاسخ : مشکلات sim900

                            سلام به تمامی دوستان عزیز
                            من یه ماژول sim900 از نمایندگی eca گرفتم به قیمت 75
                            بعد از حل بخش تغذیه با آیسی Lm2576 روی ولتاژ 4.2 ، وقتی به ماژول وصل میکنم هر سه ال ای دی روشم میشن و بدون هیچ تغییری باقی میمونن !! خیلی باهاش کلنجار رفتم نشد
                            تو هایپر ترمینال هم نه چیزی میشیه ارسال کرد و نه چیزی نمایش داده میشه
                            راستی من ماژول رو فقط تغذیه اعمال کردم و خروجی سریالش رو به کامپیوتر وصل کردم آیا قطعات دیگری لازم داره یا نه همین کافیه ؟؟؟
                            راستی اگه سیم کارت نباشه و روشنش کنیم آسیب میبینه sim900 یا نه ؟؟

                            ممنون
                            چه دعایی کنمت بهتر از آن که خدا پنجره باز اتاقت باشد ...

                            دیدگاه


                              پاسخ : مشکلات sim900

                              دوستان منبع تغذیه sim 900 من با lm2576 زدم ولتاژ 4.5 ولی امپر کم میاره هنگام استارت 3 امپر میکشه و ریست میکنه کسی نظری نداره ؟؟ میشه با lm317 اینکار کرد ؟؟ :angry: :angry:
                              قیمتی زندگی کن و قیمتی زندگی کردن را بیاموز ؛ ولی نه به هر قیمتی....

                              دیدگاه


                                پاسخ : مشکلات sim900

                                نوشته اصلی توسط محمد فیض اله زاده
                                سلام به تمامی دوستان عزیز
                                من یه ماژول sim900 از نمایندگی eca گرفتم به قیمت 75
                                بعد از حل بخش تغذیه با آیسی Lm2576 روی ولتاژ 4.2 ، وقتی به ماژول وصل میکنم هر سه ال ای دی روشم میشن و بدون هیچ تغییری باقی میمونن !! خیلی باهاش کلنجار رفتم نشد
                                تو هایپر ترمینال هم نه چیزی میشیه ارسال کرد و نه چیزی نمایش داده میشه
                                راستی من ماژول رو فقط تغذیه اعمال کردم و خروجی سریالش رو به کامپیوتر وصل کردم آیا قطعات دیگری لازم داره یا نه همین کافیه ؟؟؟
                                راستی اگه سیم کارت نباشه و روشنش کنیم آسیب میبینه sim900 یا نه ؟؟

                                ممنون
                                سلام
                                شما سیمکارت بنداز روش روشن کن(انتن حتما وصل باشه)
                                زنگ بزن به اون خطی که روش هست ببین زنگ میخوره خطت؟
                                ضمنا منبع تغذیه ات باید بالای ۲ امپر باشه

                                دیدگاه

                                لطفا صبر کنید...
                                X