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

[Attiny2313][Bascom] SPI soft problem z komunikacją

smalski 21 Sie 2009 12:24 1743 0
REKLAMA
  • #1 6916735
    smalski
    Poziom 17  
    Witam!!
    Na Atmedze8 i sprzętowym SPI komunikacja z modułem TLX095(bezprzewodowy transmiter) działa OK.
    Oto kod konfiguracyjny SPI:
    Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128 , Noss = 0


    jeśli próbuje Atmegę zamienić na Attiny2313 i ustawić SPI programowe bo sprzętowego Attiny2313 nie ma czyli wymieniam powyższą linijkę na tą:
    Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock = Portb.7


    w Attiny ustawiłem piny SPI tak jak przy programowaniu przez ISP,
    ale taki układ z programowym SPI na Attiny2313 nie chce mi działać...
    Co robić??

    Poniżej cały kod:
    $regfile = "Attiny2313.dat"
    $crystal = 4000000
    
    Config Portb.0 = Output                                    
    Csn Alias Portb.0
    
    Config Portb.1 = Output
    Pwr_up Alias Portb.1
    
    Config Portb.2 = Output
    Trx_ce Alias Portb.2
    
    Config Portb.3 = Output
    Tx_en Alias Portb.3
    
    Config Portb.4 = Output
    Led Alias Portb.4
    
    Led = 0
    Csn = 1
    
    Declare Function Odczyt(byval Rejestr As Byte) As Byte
    Declare Sub Zapis(byval Rejestr As Byte , Byval Wartosc As Byte)
    Dim I As Byte , Wynik As Byte
    
    Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock = Portb.7       'wyprowadzenia jak w rozwiązaniu sprzętowym
    
    Trx_ce = 0                                                  'wyłącz trnasmisję
    Pwr_up = 1                                                  'włącz CHIPa
    Waitms 5
    Tx_en = 1                                                   'jako nadajnik
    Waitms 1
    Spiinit
    '***********************************configuration Register-konfiguracja **************************************************************
    
    Call Zapis(9 , 15)
    
    '*************************************Pętla główna programu *************************************************************
    Do
    
    Call Zapis(9 , 15)
    Gosub Led_on
    Wynik = Odczyt(&B00011001)                                  'odczytaj z 9 rejestru
    Waitms 500
    If Wynik = 0 Then Gosub Led_mignij
    Waitms 500
    
    Loop
    
    
    '*********************************** PROCEDURY I FUNKCJE ****************************************************************
    
    Sub Zapis(byval Rejestr As Byte , Byval Wartosc As Byte)    'zapisywanie danych do rejestru
    Csn = 0                                                     'inicjowanie nowej konfiguracji
    Spiout Rejestr , 1                                          'wskazanie rejestru
    Spiout Wartosc , 1                                          'podanie wartości
    Csn = 1
    End Sub
    
    Function Odczyt(byval Rejestr As Byte) As Byte
    Local Z As Byte
    Csn = 0
    Spiout Rejestr , 1                                          'wskazanie rejestru
    Spiin Z , 1                                                 ' odczyt wskazanego rejestru to działa
    Csn = 1
    Odczyt = Z
    End Function
    
    Led_on:                                                     'mignij 1x
    Led = 1
    Waitms 100
    Led = 0
    Return
    
    
    Led_mignij:                                                 'mignij 10x
    For I = 1 To 10
    Toggle Led
    Waitms 50
    Next I
    Return


    Proszę poprawić tytuł - regulamin p.11
    [zumek]
  • REKLAMA
REKLAMA