Arduino sprites

Hallo Mede co'ers

Ik heb een vraag
Ik heb een arduino nano en een 12864 LCD Scherm
Nou will ik wat info op het Scherm zetten.
Waaronder een sprite. Maar 8 by 8 pixels vindt ik te Klein.
Is er een manier on dit in een groter formaat te doen.

Alvast bedankt

Ik moest het even opzoeken, maar je bedoelt dus een grafische afbeelding... :)
Is meestal vrij simpel. Datasheet van het display erbij en routine schrijven om de gewenste pixels aan te zetten...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

je hebt veel te weinig informatie geplaatst.

gebruik je een bestaande bibliotheek? grote kans dat hier een sprite functie inzit.

zonder die informatie is het onmogelijk om te zeggen of jij deze kan aanpassen.

bedenk wel, de nano heeft 2048 bytes ram. 8x8 is 8 bytes, 16*16 al het 4 voudige: 32 bytes!

als je a-z en 0-9 als sprite wil maken heb je dus 1152 bytes nodig, en heb je erg weinig programma ruimte over.

de maker van die bibliotheek zal wel een afweging hebben gemaakt, of omdat het display zo werkt, of om de nano te ontlasten.

mogelijk kan jij hier omheen werken, maar moet je dus meer info geven.

GMT+1

Ik gebruik de libraries U8glib.h
En Kan een sprite van 8 by 8 maken

In Mikrobasic(pic) is het een kwestie van 5 simpele routines. En een tabel waar het te tonen symbool in staat... (ST7565 compatible display)
Graphics kun je zo groot maken als je wilt...

pic basic code:


'==================================================================
Sub Procedure Lcd_WrCmd(Dim pCmd As Byte)
'==================================================================
  LCD_A0reg = 0
  LCD_Csel  = 0
  Spi1_Write(pCmd)
  LCD_Csel  = 1
End Sub

'==================================================================
Sub Procedure Lcd_WrDat(Dim pDat As Byte)
'==================================================================
  LCD_A0reg = 1
  LCD_Csel  = 0
  Spi1_Write(pDat)
  LCD_Csel  = 1
End Sub

'==================================================================
Sub Procedure Lcd_Char_8x16(Dim px, py, pchar As Byte)
'==================================================================
  Dim lIndex As Word Dim lCnt As Byte

  lIndex = (pChar - 0x20) << 4
  Lcd_SetPos(px, py)
  For lCnt = 0 To 7 
    Lcd_WrDat(LogoTab[lIndex+lCnt])
  Next lCnt
  Lcd_SetPos(px, py+1)
  For lCnt = 8 To 15 
    Lcd_WrDat(LogoTab[lIndex+lCnt])
  Next lCnt
End Sub

'==================================================================
Sub Procedure Lcd_SetPos(Dim px, py as Byte)
'==================================================================
  delay_us(1)
  Lcd_WrCmd(0xB0 + py)
  Lcd_WrCmd((px  >> 4) Or 0x10)
  Lcd_WrCmd((px And 0x0F)) ' Or 0x01)
  delay_us(1)
End Sub

'==================================================================
Sub Procedure Lcd_Logo (Dim px, py As Byte)
'==================================================================
  Dim lCnt As Byte

  For lCnt = 0 To 5
     Lcd_Char_8x16(px + (8 * lCnt), py, 0x7F + lCnt)
     Lcd_Char_8x16(px + (8 * lCnt), py + 2, 0x85 + lCnt)
  Next lCnt
End Sub
'==================================================================

[Bericht gewijzigd door Arco op 4 maart 2018 14:13:16 (16%)]

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com