-
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
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
- Szukam monitora HDMI ok. 4"
- Obcinaczki z łapaczem
- termostat do lodowki
- SEP 1 kV E
- Aku LiPo źródło dostaw - ktoś poleci ?
- starość nie radość
- Ataki hakerskie
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
Najnowsze wątki
- 2024-12-21 Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 2024-12-21 Ideologia Geniuszy-Mocarzy dostępna na nowej s. WWW energokod.pl
- 2024-12-21 ciekawy układ magnetofonu
- 2024-12-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2024-12-21 Warszawa => Java Developer <=
- 2024-12-21 Zalesie Borowe => Medical Equipment Service Engineer <=
- 2024-12-21 Żerniki => Specjalista ds. Employer Brandingu <=
- 2024-12-21 jak tacy debile
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi