f
Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 548

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/sessions.php on line 549

Warning: Cannot modify header information - headers already sent by (output started at /home/anderian/ftp/www_forum/db/mysql4.php:1) in /home/anderian/ftp/www_forum/includes/page_header.php on line 343
And-Tech :: Zobacz temat - Drugi UART sprzetowy.

Strona korzysta z plików cookie w celu realizacji usług zgodnie z Politykš prywatnoœci.

Możesz okreœlić warunki przechowywania lub dostępu do cookie w Twojej przeglšdarce lub konfiguracji usługi.

And-Tech Strona Główna And-Tech
Forum firmy And-Tech

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum  DownloadDownload

Poprzedni temat «» Następny temat
Drugi UART sprzetowy.
Autor Wiadomość
grzeniu 73 

Dołączył: 11 Mar 2012
Posty: 39
Skąd: Dania
Wysłany: Sro Lis 26, 2014 7:31 pm   Drugi UART sprzetowy.

Witam! O ile z jednym UATREM nie mam problemu to nie mogę rozwiązać problemów z drugim. Napisałem taki testowy program do obsługi telefonu i nie do końca to działa jak bym chciał.
Nie dziala mi ta funkcja
Kod:
Info = Ischarwaiting(1)
       If Info = 1 Then Gosub Pobierz_linie


Albo nie działa tz.nie reaguje na wciśniecie przycisku wysyłające zapytanie o odczyt sms. jeśli ustawie "=" lub zawiesza sie jeśli wpisze ">"
Mam cos z konfiguracja namieszane?
wszystko działa gdy po wysłaniu komendy odczytania sms wpisze gosub pobierz_linie.
A wykasuje to
Kod:
Info = Ischarwaiting(1)
       If Info = 1 Then Gosub Pobierz_linie

Fajnie działa gdy wykorzystam przerwanie URX1 ,ale nie umiem odebranych danych zapisać do jakiejś zmiennej.Tylko je wyświetlam.

Kod:
 $regfile = "m644pdef.dat"
$crystal = 16000000
$baud = 57600
$baud1 = 38400
 Open "COM2:" For Binary As #1
   Config Porta = &B11111111 : Porta = &B11111111
   Config Portb = &B11111101 : Portb = &B11111111
   Config Portc = &B11111111 : Portc = &B11111111
   Config Portd = &B11111111 : Portd = &B11111111


           Config Timer0 = Timer , Prescale = 64
           Enable Timer0 : On Timer0 Prztimer2

       Config Serialin = Buffered , Size = 80
       Config Serialout = Buffered , Size = 50
       Config Serialin1 = Buffered , Size = 250             ', Bytematch = 13

     '  Enable Urxc1
      ' On Urxc1 Odbierz
        Echo Off
       '  Config Input = Crlf , Echo = Crlf
           Enable Interrupts


Declare Sub Czysc_bufor()
 '*****************************************  ZMIENNE***************************************88
Dim G As Byte , M As Byte
 Dim Pomoc As Byte

 Dim Flaga_5ms As Bit , Flaga_500ms As Bit , Flaga_1ms As Bit , Flaga_1s As Bit       'flagi przerwan
Dim Dzielnik(3) As Byte
Dim Mig As Bit                                              '                            dzielniki timera
Dim Flag As Byte
  Flag = 1
Dim Todczyt As String * 250
Dim S As String * 10 , S1 As String * 2

Dim Znak As Byte
Dim Info As Byte
Dim Ilosc As Byte
Dim Dlugosc As Byte
Dim T As String * 250



'********************************************************************************************
'************************************** INICJACJA TELEFONU***********************************
        Print #1 , "AT" ; Chr(13)
     Waitms 100                                             'inicjalizacja modemu
       Print #1 , "ATE0" ; Chr(13) ;
     Waitms 100
        Print #1 , "AT+CSDH=0" ; Chr(13);                   ' tryb odczytywania sms- uproszczony
     Waitms 100
       Print #1 , "AT+CMGF=1" ; Chr(13);                    ' wybór trybu tekstowego dla wia-domości SMS
     Waitms 100
        Print #1 , "AT+CPMS=" ; Chr(34) ; "sm" ; Chr(34) ; Chr(13);       'wybór pamięci karty SIM jako do-myślnej dla odczytu i zapamięty-wania komunikatów SMS
     Waitms 100
       Print #1 , "AT+CNMI=1,1,0,2" ; Chr(13);
     Waitms 100
      Czysc_bufor
    '*****************************************************************************************


     Wait 1
     Print
     Print "Zaczynamy"
     Wait 1
     T = ""
     Todczyt = ""
     Ilosc = 0
     S = ""
     '*********************************************************************************
     '                                PETLA GLOWNA
     '*********************************************************************************

      Todczyt = ""

       Do
        Portb.0 = Mig

       Info = Ischarwaiting(1)
       If Info = 1 Then Gosub Pobierz_linie

    If Flag = 0 Then
    Print "z bufora" ; S
           Dlugosc = Len(s)
   Print "dlugosc " ; Dlugosc
       S1 = Mid(s , 1 , 1)
       Pomoc = Val(s1)
       Pomoc = Pomoc * 10
       S1 = ""
           S1 = Mid(s , 2 , 1)
           G = Val(s1)
           G = G + Pomoc
           S1 = ""
               S1 = Mid(s , 3 , 1)
               Pomoc = Val(s1)
               Pomoc = Pomoc * 10
               S1 = ""
               S1 = Mid(s , 4 , 1)
               M = Val(s1)
               M = M + Pomoc
               S1 = ""
                   S1 = Mid(s , 5 , 1)
                   Print S1
                   S1 = ""

                     Flag = 1
              Print G ; M
              End If


        If Pinb.1 = 0 Then
          Waitms 30
          If Pinb.1 = 0 Then
        Print #1 , "AT+CMGR=1" ; Chr(13);
       '  Print #1 , "AT+CSQ" ; Chr(13);
          '   Gosub Pobierz_linie
           '   Gosub Pobierz_linie



     End If
      End If
       '***********************************************                                   co 500ms

  If Flaga_500ms = 1 Then
    Flaga_500ms = 0
       Toggle Mig
       end if
    Loop
     End
     Close #1
     '*********************************************************************************
     '                                   KONIEC PETLI
     '*********************************************************************************
'--------------------------Czyszczenie buforu odczytu---------------------------
 Sub Czysc_bufor()
  Waitms 10

 Do
  Znak = Inkey(#1)

 Loop Until Znak = 0
 End Sub

 '------------------------Pobieranie  z UART -----------------------------------
  Pobierz_linie:
  T = ""

  Do

    Znak = Inkey(#1)
    If Znak <> 0 Then T = T + Chr(znak)                     'budujemy linie
    If Znak = 10 Then Exit Do
    If Znak = 35 Then Gosub Odczyt_sms                      'na koncu sms znak #
  Loop



   Return
'*******************************************  ODCZYT SMS ************************
   Odczyt_sms:
   S = ""
     S = T
 '  Incr Ilosc
  ' Print " odczyt sms " ; Ilosc
   Czysc_bufor

     Flag = 0

  Return
  '**********************************************************************************

   Prztimer2:                                               '     ******************    przetimer 2

  Timer0 = 6
  Set Flaga_1ms
   Incr Dzielnik(1)
    If Dzielnik(1) = 5 Then
     Dzielnik(1) = 0

   Set Flaga_5ms
   Incr Dzielnik(2)
    If Dzielnik(2) = 100 Then
     Dzielnik(2) = 0


     Set Flaga_500ms
        Incr Dzielnik(3)
         If Dzielnik(3) = 2 Then
          Dzielnik(3) = 0
        Set Flaga_1s
   End If
    End If
     End If
  Return
  '***********************************************************************************


'(



     Print #2 , "AT" ; Chr(13) ;

      Wait 1                                                'inicjalizacja modemu
       Print #2 , "ATE0" ; Chr(13) ;
         Wait 1
        Wait 1
       Print #2 , "AT+CMGF=1" ; Chr(13);                    ' wybór trybu tekstowego dla wia-domości SMS
       Wait 1
     '   Print #2 , "AT+CPMS=" ; Chr(34) ; "sm" ; Chr(34) ; Chr(13);       'wybór pamięci karty SIM jako do-myślnej dla odczytu i zapamięty-wania komunikatów SMS
       Wait 1
         Print #2 , "AT+CSQ" ; Chr(13);                     ' poziom sygnalu
       '  Wait 1
       '  Print #2 , "AT+CSMP?" ; Chr(13);
         Wait 1
          Print #2 , "AT+CNMI=1,1,0,2" ; Chr(13)
  '  Print #2 , "AT" ; Chr(13) ;
   '    Wait 1
    '   Print #2 , "AT+CMGF?" ; Chr(13);                     'zapytanie o tryb sms 1= txt
       Wait 1
      '  Print #2 , "AT+CPMS?" ; Chr(13);                    'zapytanie o status pamięci dla wiadomości SMS
      '  Wait 1
         Print #2 , "AT+CSDH=0" ; Chr(13);                  ' tryb odczytywania sms- uproszczony
         Wait 1
           Print #2 , "AT+CMGR=2" ; Chr(13);                ' odczyt sms z pozycji 1
           Wait 1
          Print "Teraz odczytamy zmienna text"
          Wait 1
        Text = ""



         '  Print #2 , "AT+CMGD=1" ; Chr(13);                     'kasowanie smsa

               Print #2 , "AT+CMGR=1" ; Chr(13);

               Wait 1


              End



  Odbierz:
  Disable Urxc1
   Text = ""

     B = Udr1
     Text = Chr(b)
     Print Text;
     Enable Urxc1

     Return

Close #2
')
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group