Skocz do zawartości

KS0108 czyszczenie piksela i bitmapy


Pomocna odpowiedź

Napisano

Witam, jestem posiadaczem książki pana Tomasz Francuza odnośnie C, jednak w opisie książki jest jak zapalić dany pixel na lcd ale nie bardzo wiem jak go zgasić. Mam także w tablicy przygotowaną w kodzie szesnastkowym bitmapę ale też nie bardzo wiem jak ją wyświetlić, wychodzą mi same głupoty, czy jest ktoś w stanie mi pomóc?

Tablica wygenerowana przez asystenta autorstwa radzia:

const PROGMEM unsigned char ikonka[32] = {

0x00, 0x70, 0x88, 0x04, 0x04, 0x04, 0x08, 0x10, 0x08, 0x04, 0x04, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00

};

Program znaleziony w edw bodajże:

void lcdBitmap(char * bmp, unsigned char x, unsigned char y, unsigned char dx, unsigned char dy)

{

unsigned char i,j;

for(j=0;j

{

GLCD_goto(x,y +j);

for (i=0;i

GLCD_WriteData(pgm_read_byte(bmp++));

}

}

Pokaż cały kod. Jeśli napisałeś tak jak napisałeś powyżej, to chociażby masz literówkę w nazwie funkcji, void też powinno się zaczynać małą i w ogóle po co ono?

#include <avr\io.h>
#include "KS0108.h"
#include "graphics.h"
//#include <stdio.h>
//#include <string.h>
int a,b;
#include <util/delay.h>
const PROGMEM unsigned char ikonka[32] = {
0x00, 0x70, 0x88, 0x04, 0x04, 0x04, 0x08, 0x10, 0x08, 0x04, 0x04, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
};

void lcdBitmap(char * bmp, unsigned char x, unsigned char y, unsigned char dx, unsigned char dy)
   {
	   unsigned char i,j;
	   for(j=0;j<dy/8;j++)
	   {
		   GLCD_goto(x,y +j);
		   for (i=0;i<dx;i++)
		   GLCD_WriteData(pgm_read_byte(bmp++));
	   }	
	   }

int main()
{    
GLCD_init();
color=1;
GLCD_cls();
//for(uint8_t r=0;r<32;r++) GLCD_Circle(64, 32, r);//64 32
//GLCD_Circle(64,32, 50);
//GLCD_goto(-60,0);
//GLCD_putchar(32);

       void lcdBitmap(ikonka,0,32, 8,8);

 GLCD_Line(-64,63,-1,63);
 GLCD_Line(0,60, 0,63);
 GLCD_Line(-64,60,-1,60);


while(1)
       {

       }	 





}

a nie pojrzałem i dlatego się wkradła tam.

Ech no rzeczywiście, LoadBMP(ikonka[32],32,0);

generuje kod ale jest on zgodny w 15% z orginałem narysowanym przezemnie, jest ogl zarys ale potem przypadkowo zapalone pixele zamazują.

Matko, skąd ci się teraz wzięło jakieś LoadBMP(ikonka[32],32,0);? W kodzie nic takiego nie widzę. Chyba nie chcesz, żebyśmy ci pomogli - weź rozwijaj jakoś te swoje posty.

Sorki, testowałem inną funkcję i nie to wkleiłem co trzeba,
lcdBitmap(ikonka,0,0,16,16) przepraszam bardzo, po wstawieniu takiego czegoś obrazek się rysuje tak jak chcę, dziekuję za pomoc w zanalezeniu głupich błedów które popełniłem 🙂

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...