Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av TomasL »

Enligt mitt sätt att se det är programmering:
Att analysera och få fram en lösning, för att sedan kunna bryta ned dessa i algoritmer och små funktioner.
Detta utföres lämpligen med papper och penna.
När sedan programmeringen är klar, så översätter man sin lösning till kod till ett format och språk som man kan, kan vara C, C++, Python, PHP eller vad som helst.
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

TomasL skrev: 7 februari 2023, 17:52:47 BJ, din fråga är som hur långt är ett snöre.
Det hela beror på hur bra och effektivt biblioteket är.
Det kan vara allt i från ett hafsverk skrivet i C++ med en nästan oändlig mängd onödig kod, till ett högoptimerat bibliotek, skrivet för en viss processor i maskinkod.

Det var faktiskt så jag menade, men inte skrev.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av TomasL »

Och svaret är, ingen vet hur bra/dåligt biblioteket är. såvida inte källkoden finns tillgänglig och man kan analysera den.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av hawkan »

Och det är klart källkoden finns, det är ju arduino https://www.arduino.cc/reference/en/lib ... idcrystal/
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

Ja, det kan man ju göra.
Det verkar vara några konstruktörer för olika varianter,
och sen en del funktions-anrop.
När jag har programmerat själv så har jag också haft
några funktions-nivåer, så nu när jag bara har tittat igenom
och tittat vad allt är så kanske det inte är så jättestor skillnad.
Det beror ju även på vad kompilatorn gör sen med filerna.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av hawkan »

Här är nån som testat att uppdatera hela skärmen och han kan göra det 205 gånger per sekund. 4.9 ms uppdatering.
https://forum.arduino.cc/t/speed-of-wri ... lay/558818
Om det sedan ska göras lite nytta i koden så tar det väl lite tid också, så fortare än så lär det inte gå antar jag.
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

Det låter ju bra.
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

När jag ändå skriver om Arduino uno:
Hur många funktions-nivåer räcker stacken till?
Vanliga pic 16 och 18 har ju 6 stack-nivåer
(8 om man kör utan avlusare),
men Arduinon verkar använda vanligt minne till det,
ungefär som en vanlig dator?

Här finns det tips för att titta på stackpekaren:

https://arduino.stackexchange.com/quest ... tack-space
pfyra
Inlägg: 347
Blev medlem: 8 mars 2015, 14:14:44
Ort: utanför Karlstad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av pfyra »

Ja det är vanligt RAM till stacken. Vill minnas att det sitter 2kB RAM i dom och maximala funktionsanropsdjupet är beroende av hur mycket stack som används av varje funktion och hur mycket (och hur stora) globala variabler som finns i programmet.

Gissningsvis är en minimal stackframe 20 byte eller så.
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

Okej.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av TomasL »

Kör man PIC18 och C så är det en mjukvarustack.
Användarvisningsbild
Electricguy
Inlägg: 12304
Blev medlem: 15 augusti 2007, 16:52:14
Ort: Kälmä' typ..

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av Electricguy »

Sedan beror det på om du kör LCD'n i 4 eller 8-bit läge. Vanligast i Arduino.världen är 4-bit, för man spar på pinnar, och det är oftast snabbt nog. Men man halverar ju effektivt uppdateringshastigheten, då man behöver skicka två gånger för att uppdatera displayen. Sedan kan man vara lite klurig och bara uppdatera de delar som behövs, istället för hela displayen.

Här är en lastgammal video på en VFO jag byggde, där displayen är kopplad i 4-bit läge, och den bara uppdaterar det som är relevant.
Användarvisningsbild
Icecap
Inlägg: 26148
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av Icecap »

Har testat en del i sin tid, inte med hur fort man kan uppdatera dom (det går snabbt nog ändå) men hur fort man kan uppdatera o kunde läsa något.

Svaret var 3 Hz, alltså max. 3 uppdateringer per sekund. Allt över det blir bara flimmer i ögonen.
BJ
Inlägg: 8303
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av BJ »

Ja, jag har för mig att jag har sett assembler-tips på hur man
programmerar en egen stack som använder minnet,
så det stämmer nog.

Tack för filmen. Bara uppdatera vissa delar är ju också ett sätt,
och det gick som sagt vad fort för att vara 4-bitars-läge.

3 gånger i sekunden, ja, kanske det.
Jag kommer inte ihåg hur fort mina program kunde ändra text,
men som jag kommer ihåg det så var det fortare än man
hinner läsa.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4695
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Arduino - är bibliotek som LiquidCrystal lika snabba som att skriva själv i assembler?

Inlägg av Swech »

Om du funderar på en ascii display så kan du köra i vilket språk som helst helt ooptimerat och ändå kommer det att funka bra.
När det börjar fladdra beror på displayen, inte Arduinon...

När det börjar handla om grafiska skärmar med färg och >320x240 i upplösning ... då är det en helt annan sak.

Swech
Skriv svar