Witajcie,
Mam taki problem, probuje wysłać 2 bajty przez SPI
Odpalajac ponizszy program w debuggerze AVR Studio zapętla sie on, gdyz flaga SPIF(sygnalizujaca zakonczenie transmisji) nie ustawia sie.
A dokladniej:
po wystawieniu 1 bajtu - ustawia sie(od razu) i jako ze jest ustawiona, to przeskakuje do 2 bajtu a tam SPIF zeru sie i dlatego pętla sprawdzajaca SPIF nie moze sie skonczyc. Probowalem jako dana dac 01010101 i podpialem tam diode z rez 1k +wrzucilem ok.5 sec opznienia, czyli gdyby cos bylo nadawane to dioda mrugalaby. a tak sie nie dzieje...
Dodatkowo po zaprogramowaniu przez LPT, odlaczam kabel i resetuje uC.
edited: ustawilem dodatkowo ss jako wyjscie + wpisalem 1 ale tez nic nie pomaga... poza tym, ze SPIF juz sie nie ustawia i zapetla sie na wysylaniu 1 bajtu
inventco.eu - temat poprawiłem, regulamin p.11.1
Mam taki problem, probuje wysłać 2 bajty przez SPI
Odpalajac ponizszy program w debuggerze AVR Studio zapętla sie on, gdyz flaga SPIF(sygnalizujaca zakonczenie transmisji) nie ustawia sie.
A dokladniej:
po wystawieniu 1 bajtu - ustawia sie(od razu) i jako ze jest ustawiona, to przeskakuje do 2 bajtu a tam SPIF zeru sie i dlatego pętla sprawdzajaca SPIF nie moze sie skonczyc. Probowalem jako dana dac 01010101 i podpialem tam diode z rez 1k +wrzucilem ok.5 sec opznienia, czyli gdyby cos bylo nadawane to dioda mrugalaby. a tak sie nie dzieje...
Dodatkowo po zaprogramowaniu przez LPT, odlaczam kabel i resetuje uC.
ldi r16, 0b01010101 ; bajt do wyslania przez SPI
SPI_MasterInit:
ldi r17, (1<<DDB3) | (1<<DDB5) ;MOSI & SCK output
out DDRB, r17
;Enable SPI, MSB first, Master,
;and set clk rate fck/16
ldi r17, (1<<SPE) | (1<<MSTR) | (1<<CPHA) | (1<<SPR0)
out SPCR, r17
cbi PORTC, 3 ; /SS do 1 przetwornika DAC
SPI_MasterTransmit:
;1st bajt
out SPDR, r16
Wait_Transmit:
in r16, SPSR
rcall delay ; ~4sec
sbrs r16, SPIF
rcall delay ; ~4sec
rjmp Wait_Transmit
;2nd bajt
out SPDR, r16
Wait_Transmit2:
in r16, SPSR
rcall delay ; ~4sec
sbrs r16, SPIF
rcall delay ; ~4sec
rjmp Wait_Transmit2
edited: ustawilem dodatkowo ss jako wyjscie + wpisalem 1 ale tez nic nie pomaga... poza tym, ze SPIF juz sie nie ustawia i zapetla sie na wysylaniu 1 bajtu
inventco.eu - temat poprawiłem, regulamin p.11.1
