Thông báo

Collapse
No announcement yet.

Giúp đỡ về đoạn code đọc tin nhắn

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giúp đỡ về đoạn code đọc tin nhắn

    Chào các bác. Em đang thử đoạn code đọc tin nhắn sms để điều khiển. Em viết đoạn code đọc như sau nhưng nó không chạy được... Các bác giúp e với, em sắp phải nộp rồi ạ. ở ngay câu lệnh temp = getchar(); hình như là nó không chạy rồi hay sao ấy ạ.
    Code:
      printf("AT+CMGR=1\r\n");
                temp = getchar();
                if(temp == 13)
                {
                    temp = getchar();
                    if(temp == 10)
                    {
                        if(temp == 43)
                        {
                            do
                            {
                                temp = getchar();
                            }while (temp !=10);
                            k = 0;
                            do
                            {
                                temp = getchar();
                                if(temp != 13 && temp != 10)
                                    sms_array[k++] = temp;    
                            }while (temp != 10);
                            if(compare(status) == 1)         // So sanh noi dung tin nhan voi code
                            {
                                    printf("AT+CMGS=\"0979982996\"\r\n");
                                    delay_ms(1000);
                                    printf("so nuoc: %6.2f Thoi gian 1 xung: %d",index,Chu_Ky);
                                    putchar(26);
                                    delay_ms(1000);
                                    putchar(27);
                                    for( k=0;k<14;k++) 
                                        sms_array[k] = '\0';
                                    delay_ms(1000);
                                    printf("AT+CMGD=1\r\n");
                            }
                            else
                            {
                                lcd_gotoxy(3,3);
                                lcd_puts(sms_array); 
                                delay_ms(100);  
                                for( k=0;k<14;k++)
                                    sms_array[k] = '\0';
                                printf("AT+CMGD=1\r\n");             
                                delay_ms(1000);
                                printf("AT+CMGD=2\r\n");
                                delay_ms(1000);
                            }
                        }
                        else
                        { 
                            lcd_gotoxy(9,1);
                            sprintf(buff_index_show,"%6.2f",index); 
                            lcd_puts(buff_index_show);
                            delay_ms(1000);   
                        }    
                    } 
                }

  • #2
    Nguyên văn bởi nvc_k6 Xem bài viết
    Chào các bác. Em đang thử đoạn code đọc tin nhắn sms để điều khiển. Em viết đoạn code đọc như sau nhưng nó không chạy được... Các bác giúp e với, em sắp phải nộp rồi ạ. ở ngay câu lệnh temp = getchar(); hình như là nó không chạy rồi hay sao ấy ạ.
    ...
    Viết lách thế này thì chạy bằng niềm tin...
    Câu hỏi quá sơ sài, muốn giúp cũng khó.
    Ít ra cũng phải nêu ra sơ đồ, đưa code cũng phải đầy đủ một chút... có đầu, có cuối... Cái gì đã được, cái gì chưa được... lại còn kêu gấp!!!! Nghĩ mà nản.

    Các MOD tính sao chẳng lẽ cứ để tình trạng "Người cần giúp cũng vô trách nhiệm với chính bản thân mình" như thế này thì buồn nhỉ???!!!

    Mình muốn tìm thêm một người trẻ hỗ trợ mình món điện tử, VXL mà tìm mỏi hết cả mắt... hơn 2 tháng rồi chưa được!!!
    Hôm nay trời nắng chang chang.
    Mèo con đi học chẳng mang thứ gì.
    Chỉ mang một cái bút chì.
    Và mang một mẩu bánh mì con con.

    Comment


    • #3
      Đây là em chỉ đưa đoạn code dùng để đọc tin nhắn. Các phần khác em không đưa vào vì nó không có vấn đề. Em test thử trên mạch thì chỉ có phần đọc tin nhắn là không được nên mới đưa đoạn code này vào (không phải là không được mà nó không ổn định, lúc đọc được lúc không). Câu hỏi của em thì cũng chỉ là phần đọc tin nhắn thôi. Ai đã làm thì nhìn code em là thấy sai đúng ở đâu rồi. Chả nhẽ em đưa code vào rồi lại phải giải thích từ dòng đầu đến dòng cuối cho các bác xem rồi mới trả lời em...

      Comment


      • #4
        Về cơ bản post thế này là tàm tạm rồi. Quan tâm hỗ trợ đoạn nào thì viết đoạn đấy thôi. Còn hơn mấy ông quẳng cả núi code lên nhìn hoa hết cả mắt.

        Tuy nhiên ở đây bạn cũng phải mô tả xem nó bị lỗi thế nào? Đang dùng chế độ đọc tin là dạng gì PDU hay Text. Nếu PDU thì còn phải giải mã nữa.
        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
        Xem thêm tại Online Store ---> Click here
        Mob: 0982.083.106

        Comment


        • #5
          Em ở đây là đọc tin nhắn dạng text. Như em nói ở trên là lúc đọc được lúc không chứ không có bị lỗi ở đâu cả. Em đang bí chỗ này thôi.

          Comment


          • #6
            Nguyên văn bởi nvc_k6 Xem bài viết
            Đây là em chỉ đưa đoạn code dùng để đọc tin nhắn. Các phần khác em không đưa vào vì nó không có vấn đề. Em test thử trên mạch thì chỉ có phần đọc tin nhắn là không được nên mới đưa đoạn code này vào (không phải là không được mà nó không ổn định, lúc đọc được lúc không). Câu hỏi của em thì cũng chỉ là phần đọc tin nhắn thôi. Ai đã làm thì nhìn code em là thấy sai đúng ở đâu rồi. Chả nhẽ em đưa code vào rồi lại phải giải thích từ dòng đầu đến dòng cuối cho các bác xem rồi mới trả lời em...
            Bạn có khẳng định 100% là bạn đã khoanh vùng lỗi rơi vào đoạn code này không? Vấn đề của bạn mắc phải chưa hẳn đã nằm trong đoạn code mà bạn đã post lên. Hơn nữa bài đầu thì bạn nói không chạy được, bài sau lại nói lúc được lúc không???
            Khi hỏi một vấn đề nhỏ bạn không cần Post cả 1 Project, nhưng cũng đừng cụt ngủn như thế... Tốt nhất nên đưa ra 1 Program trọn vẹn chỉ cần nhỏ gọn thôi, Ý tôi là vậy, đừng để bài viết của mình thành rác...

            printf("AT+CMGR=1\r\n");
            temp = getchar();
            if(temp == 13)
            {
            temp = getchar();
            if(temp == 10)
            {
            if(temp == 43)
            {
            ....
            Nhìn kỹ ra thì đoạn này có vẻ thiếu 1 câu temp = getchar(); sửa lại như sau xem sao:
            printf("AT+CMGR=1\r\n");
            temp = getchar();
            if(temp == 13)
            {
            temp = getchar();
            if(temp == 10)
            {
            temp = getchar();
            if(temp == 43)
            {
            ....

            Không có dòng lệnh này thì khác nào temp vừa = 10, vừa = 43. Thế mà khi chạy "lúc được lúc không"... tài thật!!!???
            Last edited by Acxen_lupine; 28-02-2013, 12:59. Lý do: viết thêm
            Hôm nay trời nắng chang chang.
            Mèo con đi học chẳng mang thứ gì.
            Chỉ mang một cái bút chì.
            Và mang một mẩu bánh mì con con.

            Comment


            • #7
              Post lên đây em có thiếu dòng đấy. Và thêm dòng đấy vào thì vẫn không được. Bác cứ coi project của em chỉ là đọc tin nhắn thôi chẳng hạn, thì hàm main đọc tin nhắn của em thì cũng như ở trên (thêm dòng lệnh temp=getchar() em viết thiếu)... Chứ cần gì em phải đưa project hay gì lên cho nhiều đâu bác...

              Comment


              • #8
                Nguyên văn bởi nvc_k6 Xem bài viết
                Post lên đây em có thiếu dòng đấy. Và thêm dòng đấy vào thì vẫn không được. Bác cứ coi project của em chỉ là đọc tin nhắn thôi chẳng hạn, thì hàm main đọc tin nhắn của em thì cũng như ở trên (thêm dòng lệnh temp=getchar() em viết thiếu)... Chứ cần gì em phải đưa project hay gì lên cho nhiều đâu bác...
                Thêm vào cũng không được thì bỏ đi cũng không sao hả??? Kết thêm bạn cái "tội chưa nói xong đã cãi xong"...
                Ở đây chúng ta làm lập trình, phải có phần mềm để debug... không thì lập trình bằng "Word" à?
                Có nhiều vấn đề liên quan đến một chương trình chạy hay không chạy:
                - Phần cứng,
                - Tốc độ truyền thông,
                - Module truyền thông loại nào
                - Cài đặt các chế độ cho Module
                - Đặt giải thuật vào chỗ nào trong chương trình...
                ....
                - Bạn đã khẳng định được gì???
                - Lỗi còn lại mà bạn thấy như nào???
                ...
                Quẳng lên 1 đoạn code (chưa kể cái hàm compare(status) là cái gì...) ... Thử hỏi giúp bạn thế nào đây!?
                Mất hơn 1 ngày với 8 bài post mà vấn đề cỏn con này của bạn cũng chưa xong... bạn có thấy lãng phí cho tất cả không???
                ...
                Nếu bạn hỏi mà có người giúp được thì diễn đàn lại có thêm bài viết hay, trọn vẹn - người đi sau có thể học hỏi từ đó (mặc dù cái đó trên diễn đàn không thiếu)...

                p/s: Mạn phép phê bình MOD VNarmy quá dễ tính!!!
                Last edited by Acxen_lupine; 28-02-2013, 16:41.
                Hôm nay trời nắng chang chang.
                Mèo con đi học chẳng mang thứ gì.
                Chỉ mang một cái bút chì.
                Và mang một mẩu bánh mì con con.

                Comment


                • #9
                  Lãng phí thời gian hay không em ko tranh cãi với bác. Em đã nhận là em post lên thiếu 1 dòng code. về tốc độ truyền thông và các thứ khác là ok hết. Vấn đề của em ở đây là lúc đọc được lúc không đọc được. Vì vậy nên em mới nghi ngờ là temp=getchar() ngay sau lệnh yêu cầu đọc. Bởi vì em chỉ hỏi đến cái đọc tin nhắn thôi nên các thứ khác bác có thể bỏ qua cho em. Bác xem code thì cũng biết đến dòng nào là đọc xong tin nhắn rồi. Compare em cũng có chú thích rồi đấy. Nếu như bác muốn em đưa hết lên rồi giải thích các thứ thì chắc vác cả project lên cho bác xem rồi làm luôn hộ em quá...

                  Comment


                  • #10
                    Nguyên văn bởi nvc_k6 Xem bài viết
                    Lãng phí thời gian hay không em ko tranh cãi với bác. Em đã nhận là em post lên thiếu 1 dòng code. về tốc độ truyền thông và các thứ khác là ok hết. Vấn đề của em ở đây là lúc đọc được lúc không đọc được. Vì vậy nên em mới nghi ngờ là temp=getchar() ngay sau lệnh yêu cầu đọc. Bởi vì em chỉ hỏi đến cái đọc tin nhắn thôi nên các thứ khác bác có thể bỏ qua cho em. Bác xem code thì cũng biết đến dòng nào là đọc xong tin nhắn rồi. Compare em cũng có chú thích rồi đấy. Nếu như bác muốn em đưa hết lên rồi giải thích các thứ thì chắc vác cả project lên cho bác xem rồi làm luôn hộ em quá...
                    Bó văn tay!
                    Bạn đã tắt chế độ phản hồi của Module chưa???
                    Last edited by Acxen_lupine; 28-02-2013, 18:28.
                    Hôm nay trời nắng chang chang.
                    Mèo con đi học chẳng mang thứ gì.
                    Chỉ mang một cái bút chì.
                    Và mang một mẩu bánh mì con con.

                    Comment

                    Về tác giả

                    Collapse

                    nvc_k6 Tìm hiểu thêm về nvc_k6

                    Bài viết mới nhất

                    Collapse

                    Đang tải...
                    X