-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.h82-143-187-50
-static.e-wro.net.pl!not-for-mail
From: "J.F" <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: C++ ośla łączka
Date: Mon, 6 Feb 2023 08:11:23 +0100
Organization: news.chmurka.net
Message-ID: <c...@4...net>
References: <63da914d$0$19625$65785112@news.neostrada.pl>
<16qbnwht7z74n.8802zax2iioq$.dlg@40tude.net>
<63dad430$0$9589$65785112@news.neostrada.pl>
<2lc2k584a7fw.i3cy3glism0z$.dlg@40tude.net>
<63dcfd3f$0$9589$65785112@news.neostrada.pl>
<dgvh8noaqudp$.1wnyhky5x5i1s$.dlg@40tude.net>
<63e03ad7$0$9603$65785112@news.neostrada.pl>
NNTP-Posting-Host: h82-143-187-50-static.e-wro.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Injection-Info: news.chmurka.net; posting-account="jfoxwr";
posting-host="h82-143-187-50-static.e-wro.net.pl:82.143.187.50";
logging-data="22377";
mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: 40tude_Dialog/2.0.15.1
Xref: news-archive.icm.edu.pl pl.misc.elektronika:778005
[ ukryj nagłówki ]On Mon, 6 Feb 2023 00:25:11 +0100, Robert Wańkowski wrote:
> W dniu 2023-02-03 o 17:42, J.F pisze:
>
>>>>>> char fbuf[20];
>>>>>> dtostrf(mpu.getAngleX(), 8, 3, fbuf) ;
>>>>>> Paint_DrawString_EN(123, 123, fbuf,&Font16, BLACK, GREEN);
>>>>>
>>>>> Działa, dziękuję.
>>
>> To jest troche nadmiarowe, z zapasem dalem :-)
>
> Przeglądają bibliotekę okazało się, że jest:
> Paint_DrawNum()
> ale jak i tak działa to skandalicznie wolno. :-)
Jest nawet
void Paint_DrawFloatNum(UWORD Xpoint, UWORD Ypoint, double Nummber, UBYTE
Decimal_Point,
sFONT* Font, UWORD Color_Background, UWORD Color_Foreground)
{
char Str[ARRAY_LEN] = {0};
dtostrf(Nummber,0,Decimal_Point+2,Str);
char * pStr= (char *)malloc((strlen(Str))*sizeof(char));
memcpy(pStr,Str,(strlen(Str)-2));
* (pStr+strlen(Str)-1)='\0';
if((*(pStr+strlen(Str)-3))=='.')
{
*(pStr+strlen(Str)-3)='\0';
}
//show
Paint_DrawString_EN( [...]
Robi z grubsza to samo, co proponowalem - ale po co to podwójne buforowanie?
O, i jest nawet Paint_DrawString_CN
... nowe czasy :-)
>>> Już wiem, że te Arduino Uno z 16 MHz nie da rady, aby na bieżąco płynnie
>>> wyświetlać nawet jedną wartość numeryczną.
>>>
>>> Trzeba czyścić ekran przed następnym rekordem do wyświetlenia. Czyszczę
>>> tylko ten obszar od rekordu, a i tak miga.
>>
>> no
>> a) przygotowac gdzies buforze caly nowy obszar ze znakami, przepisac.
>
> Ale to poziom za wysoki dla mnie. Szukałem miejsca w bibliotekach, gdzie
> są wysyłane dane na wyświetlacz, ale ugrzęzłem.
>
> Tu jest ta biblioteka.
> http://3a-meble.com.pl/lib/bc295x/LCD_1inch8-ldrnn3f
w.zip
>
>> b) nie ma gdzies w tej funkcji mozliwosci ustawienia, aby rysowala i
>> czyscila jednoczesnie?
>
> Coś podobnego zrobiłem, czyszczę wyświetlając ten sam rekord kolorem
> czcionki takim samym co tło.
Na jedno wychodzi - wyczyscisz i masz ciemny ekran.
Narysujesz ... no i miga.
> Bo biblioteka nie czyści tła jeżeli
> wyświetlana czcionka ma takie samo.
No wlasnie - ma tryb, gdzie jednoczesnie ustawia piksele znaku i tla.
Moze troche wolno, ale bez migania.
Tylko nie rozumiem tego koloru czcionki. Sama czcionka jest bitowa - gdzie tu kolor?
parameter:
Xpoint :X coordinate
Ypoint :Y coordinate
Acsii_Char :To display the English characters
Font :A structure pointer that displays a character size
Color_Background : Select the background color of the English character
Color_Foreground : Select the foreground color of the English character
****************************************************
**************************/
void Paint_DrawChar(UWORD Xpoint, UWORD Ypoint, const char Acsii_Char,
sFONT* Font, UWORD Color_Background, UWORD Color_Foreground)
{
UWORD Page, Column;
if (Xpoint > Paint.Width || Ypoint > Paint.Height) {
//Debug("Paint_DrawChar Input exceeds the normal display range\r\n");
return;
}
uint32_t Char_Offset = (Acsii_Char - ' ') * Font->Height * (Font->Width / 8 +
(Font->Width % 8 ? 1 : 0));
const unsigned char *ptr = &Font->table[Char_Offset];
for ( Page = 0; Page < Font->Height; Page ++ ) {
for ( Column = 0; Column < Font->Width; Column ++ ) {
//To determine whether the font background color and screen background color is
consistent
if (FONT_BACKGROUND == Color_Background) { //this process is to speed up the
scan
if (pgm_read_byte(ptr) & (0x80 >> (Column % 8)))
Paint_SetPixel (Xpoint + Column, Ypoint + Page, Color_Foreground );
} else {
if (pgm_read_byte(ptr) & (0x80 >> (Column % 8))) {
Paint_SetPixel (Xpoint + Column, Ypoint + Page, Color_Foreground );
} else {
Paint_SetPixel (Xpoint + Column, Ypoint + Page, Color_Background );
}
}
//One pixel is 8 bits
if (Column % 8 == 7) {
ptr++;
}
}/* Write a line */
if (Font->Width % 8 != 0) {
ptr++;
}
}/* Write all */
}
O co im chodzi z tymi kolorami?
Moze zmien ciut kolor tla, lub wywal to sprawdzanie i nie kasuj.
> Ale i tak mizernie. Czas jest tak długi, że główna funkcja programu
> (wyświetlanie punktu według wskazać akcelerometru - taka poziomica 2D)
> nie działa płynnie.
>
>> c) mozna samemu cos takiego napisac, ale nie jest to takie trywialne,
>> d) przejsc na font "7-segmentowy". wtedy wystarczy zapalic lub zgasic
>> kilka fikusnych prostokątów :-)
>
> Ale linia (patrząc w kod biblioteki), rysowana jest w pętli z pikseli.
> Tak samo jak czcionki, rysowane są punkt po punkcie według zawartości
> tablicy.
> I pewnie będzie trwało podobnie jak wyświetlenie czcionki.
Ale tym pomysle pikseli skladajacych sie na znak jest znacznie mniej (bo tylko
segmenty),
i segmenty wszedzie takie same - wiec nie trzeba calego obszaru znaku kasowac.
>>> Dlatego kupiłem szybszy:
>>> https://botland.com.pl/moduly-wifi-i-bt-esp32/8893-e
sp32-wifi-bt-42-platforma-z-modulem-esp-wroom-32-zgo
dny-z-esp32-devkit-5904422337438.html
>>
>> SPI tez ma szybsze?
>
> https://www.espressif.com/sites/default/files/docume
ntation/esp32_datasheet_en.pdf
>
> 39 strona.
>
> 80 MHz.
A wyswietlacz ile dopuszcza?
No i biblioteka sporo tu jednak wylicza dla kazdego piksela - moze nie w SPI problem.
A i sama biblioteka, gdzie jak widze co bajt chwila jest pin CS zmieniany ... ciekawe
czy tak trzeba.
J.
Następne wpisy z tego wątku
- 11.02.23 02:01 Piotr Gałka
- 11.02.23 02:25 Piotr Gałka
- 11.02.23 02:42 Piotr Gałka
- 13.02.23 09:26 jacek pozniak
- 14.02.23 15:39 Piotr Gałka
- 14.02.23 19:06 Janusz
- 14.02.23 22:22 Piotr Gałka
- 14.02.23 22:42 heby
- 15.02.23 15:40 Piotr Gałka
- 15.02.23 19:50 heby
- 15.02.23 21:28 Piotr Gałka
- 15.02.23 22:14 Marek
- 15.02.23 23:10 heby
- 16.02.23 00:02 Grzegorz Niemirowski
- 16.02.23 07:22 heby
Najnowsze wątki z tej grupy
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
Najnowsze wątki
- 2025-02-07 Jaki silikon lub może klej?
- 2025-02-07 Gdańsk => iOS Developer (Swift experience) <=
- 2025-02-07 Warszawa => Starszy Programista C <=
- 2025-02-07 Niby to nie sąd ale kooorwa tak to w sądach dziś wygląda?
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=