logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega2561][Bascom] Problem z odbieraniem danych

romantv 18 Sie 2008 07:03 1100 2
REKLAMA
  • #1 5449398
    romantv
    Poziom 17  
    Witam serdecznie
    Panowie przesyłam frag. kodu, program ma tylko przetestować odbieranie kodów od 1 do 10.

    ...

    Do
    Licznik1 = Licznik1 + 1
    Licznik2 = Licznik2 + 2
    Licznik3 = Licznik3 + 3
    
    Licznik4 = Licznik4 + 4
    Licznik5 = Licznik5 + 5
    Licznik6 = Licznik6 + 6
    
    Licznik7 = Licznik7 + 7
    Licznik8 = Licznik8 + 8
    Licznik9 = Licznik9 + 9
    
    Licznik10 = Licznik10 + 1
    
    Wait 1
    
    Locate 1 , 10
    Lcd Licznik10
    
    If Ischarwaiting(#4) <> 0 Then
    
                    _rsstr1 = ""
                   Input _rsstr1                                ', Dane1 , Dane2 , Dane3
    
              '  F_rs1 = 0
                Locate 2 , 1
                Lcd _rsstr1 ; " : " ; Dane1 ; " : " ; Dane2
    
    Select Case _rsstr1
    
    Case "1"
    
    Print #2 , 1 ;
    
    Case "2"
    
    Print #2 , 2 ;
    
    Case "3"
    
    Print #2 , 3 ;
    
    Case "4"
    
    Print #2 , 4 ;
    
    Case "5"
    
    Print #2 , 5 ;
    
    Case "6"
    
    Print #2 , 6 ;
    
    Case "7"
    
    Print #2 , 7 ;
    
    Case "8"
    
    Print #2 , 8 ;
    
    Case "9"
    
    Print #2 , 9 ;
    
    Case "10"
    
    Print #2 , 10 ;
    
    ' ------------------------------------------------------------------------------
     End Select
       End If
    Loop
    End



    Do momentu kiedy nie przychodzą dane program działa poprawnie.

    Natomiast kiedy tylko odbierze dane np. 1 itp

    licznik przestaje liczyć i układ nic nie wysyła.
    wisi jak by.

    ================================================
    Natomiast w ATmedze 32

    ten fragment programu działa poprawnie
    układ odbiera i nadaje po otrzymaniu odpowiedniego kodu.

    Wiem ,że ATmega 2561 ma 2 comy
    a ATmega 32 ma tylko jeden com.

    Kanały #4 w ATmedze są prawidłowo ustawione odpowiada za właściwy kod.

    Dziękuję za każdą pomoc.

    Przeniosłem z Programowanie Ogólne - krzychoocpp
  • REKLAMA
  • Pomocny post
    #2 5633839
    504d
    Poziom 11  
    Dodaj sobie takie cos na poczatku:
    Open "comd.1:19200,8,n,1" For Input As #2


    Aha i instrukcja case.. zapisz ja raczej tak:
    
    Select Case _rsstr1
    
    Case "1":Print #2 , 1 
    
    ... itd
    
    end select 


    nie uzywaj srednikow i pisz w jedej lini dajac po warunku " :"

    Pozdrawiam
  • #3 5635514
    romantv
    Poziom 17  
    witam i dziękuję za pomoc.
    Jednak temat już załatwiłem zastępując instrukcję print zamieniając na inkey

    działa poprawnie na wszystkich portach poprawnie.
    Dziękuję.
REKLAMA