Нет, инициализациция идет программно:
;void port_init_io(void)
.global port_init_io
port_init_io:
; setup serial data I/O pins
cbi PORTB, LCD_RESET ; display reset
sbi DDRB, LCD_RESET ; set reset as output
sbi DDRB, LCD_MISO ; MISO is always input in SPI
sbi DDRB, LCD_MOSI ; MOSI must be set as output for SPI
sbi PORTB, LCD_CS ; deselect display
sbi DDRB, LCD_CS ; SS must be output for Master mode to work
cbi PORTB, LCD_SCK ; set SCK lo
sbi DDRB, LCD_SCK ; set SCK as output
sbi PORTB, LCD_MISO ; enable pull up of MISO to avoid floating input
sbi PORTB, LCD_RS ; start with RS=high
sbi DDRB, LCD_RS ; RS signal is output
; setup serial data interface
; select clock phase positive going in middle of data
; master mode
; enable SPI
; speed is CPUclock/2
ldi r24,(1<<MSTR) | (1<<SPE) | (1<<SPR0) ; Master Mode, Enable SPI, fCPU/16 clock
out SPCR,r24
ldi r24,1 ; double speed bit
out SPSR,r24
ldi r24,1
ldi r25,0
rcall mswait ; wait one ms to have a nice reset
sbi PORTB, LCD_RESET ; release reset
in r24,SPSR ; clear status
ret
Где:
#define LCD_CS PB0
#define LCD_RESET PB6
#define LCD_RS PB7
#define LCD_MOSI PB2
#define LCD_MISO PB3
#define LCD_SCK PB1
Разводка самого проца - дисплея см ris3.
На рисунке указана мега128, у меня 32.
Все темы в мэйк файле я изменил на 32.
У меня есть мысля, не медленно ли у меня работает спи, если стоит кварц на 16МГц, его делим на 16, получаем 1МГ, а надо вроде как я понял больше 10.
Сообщение отредактировал lomtev - Aug 22 2007, 21:21
Эскизы прикрепленных изображений