Вс апр 02, 2017 07:40:40
Вс апр 02, 2017 11:43:44
А та, что в архиве, не для AVR ?AVR_hobby писал(а):хочу найти библиотеку для AVR
Вс апр 02, 2017 12:15:17
Вс апр 02, 2017 12:26:38
А чем то отличается AVR, стоящая в ардуино, от AVR, не стоящей в ардуино ?AVR_hobby писал(а):Для Ардуино
Это исполнительные файлы С++AVR_hobby писал(а):Расширения файлов СРР
Вс апр 02, 2017 12:37:10
Вс апр 02, 2017 12:43:26
Вс апр 02, 2017 12:57:07
Ср апр 05, 2017 07:28:17
Ср апр 05, 2017 08:01:47
Ср апр 05, 2017 10:03:56
"А меня интересует вывод текста, картинки, рисование фигур"
Ср апр 05, 2017 10:09:32
Чт апр 06, 2017 07:16:05
while ((TWCR & _BV(TWINT)) == 0) {}
.def w=R16
.def TMP1=R18
.equ SSD_BUFFER =0x400 ;up to 0x7ff
;....
ssd1306_initseq_tbl:
.db 0xae,0xd5,0x80,0xa8,0x3f,0xd3,0x00,0x40,0x8d,0x14,0x20,0x00,0xa1,0xc8,0xda,0x12,0x81,0x9f,0xd9,0xf1,0xdb,0x40,0xa4,0xa6,0xaf,0xff
InitDisplay:
;init TWI
ldi w,0xf8
sts TWSR,w
ldi w,0b00001100
sts TWBR,w
ldi w,0b00000101
sts TWCR,w
ldi ZH,high(ssd1306_initseq_tbl*2)
ldi ZL,low(ssd1306_initseq_tbl*2)
lp_initdisplay:
lpm w,Z+
cpi w,0xff
breq end_initdisplay
mov TMP1,w
call send_ssd_command
rjmp lp_initdisplay
end_initdisplay:
call set_ssd_buff
jmp ssd_update
;----------
;----------
.equ SSD1306_COMMAND=0x00
.equ SSD1306_DATA=0xC0
.equ SSD1306_DATA_CONTINUE=0x40
.equ SSD1306_SET_COLUMN_ADDR=0x21
.equ SSD1306_SET_PAGE_ADDR=0x22
send_ssd_command:
ldi w,1<<TWEN|1<<TWEA|1<<TWINT|1<<TWSTA
sts TWCR,w
call wait_twint
ldi w,0x3c<<1 ;ssd1306 addr=0x3c
sts TWDR,w
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
ldi w, SSD1306_COMMAND;
sts TWDR,w
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
sts TWDR,TMP1
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
send_ssd_stop:
ldi w,1<<TWEN|1<<TWINT|1<<TWSTO
sts TWCR,w
ret
wait_twint:
lds w,TWCR
sbrs w,TWINT
rjmp wait_twint
ret
;----------
set_ssd_buff:
ldi w,0xff
rjmp fill_ssd_buff
clr_ssd_buff:
ldi w,0
fill_ssd_buff:
ldi ZH,high(SSD_BUFFER)
ldi ZL,low(SSD_BUFFER)
lp_clr_ssd_buff:
st Z+,w
sbrs ZH,3
rjmp lp_clr_ssd_buff
ret
;----------
ssd_update:
ldi TMP1,SSD1306_SET_COLUMN_ADDR
call send_ssd_command
ldi TMP1,0
call send_ssd_command
ldi TMP1,127
call send_ssd_command
ldi TMP1,SSD1306_SET_PAGE_ADDR;
call send_ssd_command
ldi TMP1,0
call send_ssd_command
ldi TMP1,7
call send_ssd_command
ldi w,1<<TWEN|1<<TWEA|1<<TWINT|1<<TWSTA
sts TWCR,w
call wait_twint
ldi w,0x3c<<1 ;ssd1306 addr
sts TWDR,w
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
ldi w,SSD1306_DATA_CONTINUE
sts TWDR,w
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
ldi ZH,high(SSD_BUFFER)
ldi ZL,low(SSD_BUFFER)
lp_send_ssdbuff:
ld w,Z+
sts TWDR,w
ldi w,1<<TWEN|1<<TWINT|1<<TWEA
sts TWCR,w
call wait_twint
sbrs ZH,3
rjmp lp_send_ssdbuff
call send_ssd_stop
ret
Чт апр 27, 2017 18:42:14
void SSD1306_FillScreen(unsigned char FillColor)
{
unsigned char m,n;
for( m=0; m<8; m++ )
{
SSD1306_Cmd( SSD1306_PAGESTARTADDR + m ); //0xB0 page0, page1....
SSD1306_Cmd( SSD1306_SETLOWCOLUMN ); //0x00 low column start address
SSD1306_Cmd( SSD1306_SETHIGHCOLUMN ); //0x10 high column start address
SSD1306_Cmd( SSD1306_SETSTARTLINE );
SSD1306_DataStart();
for(n=0; n<128; n++)
{
twi_SendByte( FillColor );
}
twi_Stop(); // Stop I2C
}
}
Сб апр 29, 2017 17:02:22
Сб апр 29, 2017 22:29:58
Сб апр 29, 2017 22:41:13
Сб апр 29, 2017 23:18:20
Albert_V писал(а):Если надо - выложу фото.
Вс апр 30, 2017 00:00:28
Не вопрос.serg_svd писал(а):Выкладывайте, очень любопытно.
Вс апр 30, 2017 00:12:14
Вс апр 30, 2017 07:03:02