вот собственно все что к нему относится (куски из библиотеки Christian Kranz):
- Код: Выделить всё
- // настройка портов
 cbi LCD_PORT, LCD_RESET ; display reset
 sbi LCD_DDR, LCD_RESET ; set reset as output
 cbi LCD_DDR, LCD_MISO ; MISO is always input in SPI
 sbi LCD_DDR, LCD_MOSI ; MOSI must be set as output for SPI
 sbi LCD_PORT, LCD_CS ; deselect display
 sbi LCD_DDR, LCD_CS ; SS must be output for Master mode to work
 cbi LCD_PORT, LCD_SCK ; set SCK lo
 sbi LCD_DDR, LCD_SCK ; set SCK as output
 sbi LCD_PORT, LCD_MISO ; enable pull up of MISO to avoid floating input
 sbi LCD_PORT, LCD_RS ; start with RS=high
 sbi LCD_DDR, 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)
 out LCD_SPCR,r24
 ldi r24,1 ; double speed bit
 out LCD_SPSR,r24
 // задержка
 
 sbi LCD_PORT, LCD_RESET ; release reset
 in r24,LCD_SPSR ; clear status
 // задержка
 ; ports and SPI are now configured
 ldi T1,0xFD
 rcall glcdDispCommand <<- отсюда МК уже не возвращается
 ...
Смотрим что там в glcdDispCommand (откуда МК уже не выходит):
- Код: Выделить всё
- cbi LCD_PORT,LCD_CS ; select Display
 sbi LCD_PORT,LCD_RS ; set RS line
 rjmp SPI_SEND
 ....
 PI_SEND:
 sbi LCD_SPCR,SPE ;enable SPI
 out LCD_SPDR,T1 ;load byte in SPI data register
 SPI_SEND_0:
 sbis LCD_SPSR,SPIF
 rjmp SPI_SEND_0 <<- вот из этого лупа уже никогда не выходит
 ПОЧЕМУ МОЖЕТ НЕ ВЫСТАВЛЯТСЯ SPIF ???
 
 .....
 ret
с дисплеем и проводами вроде все в порядке - загружал прогу на БАСКОМ - там программный SPI - картинку показывало. подумал может провода длинные - попробовал снизить скорость SPI - не помогло тоже.
Кто глубоко работал с SPI? Домоможить!!

Добавлено спустя 1 минуту 45 секунд:
с этой библиотекой работал на другой плате - макетке - иногда висло через несколько часов работы, но SPI хотяб работал
Добавлено спустя 1 минуту 27 секунд:
SPI когда передает данные - он вообще слейва видит както? или просто выставляет данные, выдате такт 8 раз и передача окончена? Слейв никак не маякует что все в порядке?
Добавлено спустя 2 минуты 36 секунд:
попробую в другой МК залить
 . мож этот нехороший...
 . мож этот нехороший...
 
 


 
 
 Уже который раз подряд выручаеш!
 Уже который раз подряд выручаеш!  