Witam!!
Na Atmedze8 i sprzętowym SPI komunikacja z modułem TLX095(bezprzewodowy transmiter) działa OK.
Oto kod konfiguracyjny SPI:
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ą:
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:
Proszę poprawić tytuł - regulamin p.11
[zumek]
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 = 0jeś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.7w 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
ReturnProszę poprawić tytuł - regulamin p.11
[zumek]