Witam.
Bawie się od tygodnia wyświetlaczem 3510i, programuje go w BASCOM na MEGA16.
Do tej pory wszystko działa, tylko jak zmieniam z
Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock = Portb.7
na sprzetowe
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4
To wtopa, czyli wyświetlacz tobi się biały, po jakimś czasie zapala się kilka pikseli i tyle.
Wysyłam dane na wyświetlacz tą procedurą.
Sub Lcd_parameter(lparameter As Byte)
Lcd_cs = 0
Sclk = 0
Sdata = 1
Sclk = 1
Spiinit
'Spdr = Lparameter
'Gosub Wait_spi
Spiout Lparameter , 1
Lcd_cs = 1
End Sub
'*******************************************************************************
Sub Lcd_command(lcommand As Byte)
Lcd_cs = 0
Sclk = 0
Sdata = 0
Sclk = 1
Spiinit
'Spdr = Lcommand
'Gosub Wait_spi
Spiout Lcommand , 1
Lcd_cs = 1
End Sub
'Wait_spi:
'sbis SPSR,SPIF
'rjmp Wait_spi
'ret
Próbowałem też przez wpisywanie do Spdr danych ale tez nie działa.
Na SPI = Soft wyświetlacz wolno dziła i widać jak się rysują obrazki
Czy ktoś obsługuje ten wyświetlacz przes sprzętowe SPI ??
Pozdrawiam
Piotr
Problem już rozwiązałem wstawką z asmblera
Sub Lcd_parameter(lparameter As Byte)
Lcd_cs = 0
cbi SPCR,SPE ';disable SPI
sbi PORTB,PB5 ';set MOSI High
sbi PORTB,PB7 ';SCK Hi
cbi PORTB,PB7 ';SCK Lo
sbi SPCR,SPE ';enable SPI
Spdr = Lparameter
Gosub Wait_spi
Lcd_cs = 1
End Sub
'*******************************************************************************
Sub Lcd_command(lcommand As Byte)
Lcd_cs = 0
cbi SPCR,SPE ';disable SPI
cbi PORTB,PB5 ';clear MOSI
sbi PORTB,PB7 ';SCK Hi
cbi PORTB,PB7 ';SCK Lo
sbi SPCR,SPE ';enable SPI
Spdr = Lcommand
Gosub Wait_spi
Lcd_cs = 1
End Sub
Bawie się od tygodnia wyświetlaczem 3510i, programuje go w BASCOM na MEGA16.
Do tej pory wszystko działa, tylko jak zmieniam z
Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock = Portb.7
na sprzetowe
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4
To wtopa, czyli wyświetlacz tobi się biały, po jakimś czasie zapala się kilka pikseli i tyle.
Wysyłam dane na wyświetlacz tą procedurą.
Sub Lcd_parameter(lparameter As Byte)
Lcd_cs = 0
Sclk = 0
Sdata = 1
Sclk = 1
Spiinit
'Spdr = Lparameter
'Gosub Wait_spi
Spiout Lparameter , 1
Lcd_cs = 1
End Sub
'*******************************************************************************
Sub Lcd_command(lcommand As Byte)
Lcd_cs = 0
Sclk = 0
Sdata = 0
Sclk = 1
Spiinit
'Spdr = Lcommand
'Gosub Wait_spi
Spiout Lcommand , 1
Lcd_cs = 1
End Sub
'Wait_spi:
'sbis SPSR,SPIF
'rjmp Wait_spi
'ret
Próbowałem też przez wpisywanie do Spdr danych ale tez nie działa.
Na SPI = Soft wyświetlacz wolno dziła i widać jak się rysują obrazki
Czy ktoś obsługuje ten wyświetlacz przes sprzętowe SPI ??
Pozdrawiam
Piotr
Problem już rozwiązałem wstawką z asmblera
Sub Lcd_parameter(lparameter As Byte)
Lcd_cs = 0
cbi SPCR,SPE ';disable SPI
sbi PORTB,PB5 ';set MOSI High
sbi PORTB,PB7 ';SCK Hi
cbi PORTB,PB7 ';SCK Lo
sbi SPCR,SPE ';enable SPI
Spdr = Lparameter
Gosub Wait_spi
Lcd_cs = 1
End Sub
'*******************************************************************************
Sub Lcd_command(lcommand As Byte)
Lcd_cs = 0
cbi SPCR,SPE ';disable SPI
cbi PORTB,PB5 ';clear MOSI
sbi PORTB,PB7 ';SCK Hi
cbi PORTB,PB7 ';SCK Lo
sbi SPCR,SPE ';enable SPI
Spdr = Lcommand
Gosub Wait_spi
Lcd_cs = 1
End Sub