Sida 2 av 6

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

Postat: 7 februari 2023, 18:15:55
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.

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

Postat: 7 februari 2023, 19:40:33
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.

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

Postat: 7 februari 2023, 20:16:47
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.

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

Postat: 7 februari 2023, 20:45:21
av hawkan
Och det är klart källkoden finns, det är ju arduino https://www.arduino.cc/reference/en/lib ... idcrystal/

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

Postat: 7 februari 2023, 21:16:53
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.

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

Postat: 7 februari 2023, 22:05:38
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.

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

Postat: 8 februari 2023, 06:00:11
av BJ
Det låter ju bra.

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

Postat: 8 februari 2023, 06:02:13
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

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

Postat: 8 februari 2023, 09:03:56
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å.

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

Postat: 8 februari 2023, 14:44:56
av BJ
Okej.

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

Postat: 8 februari 2023, 14:46:24
av TomasL
Kör man PIC18 och C så är det en mjukvarustack.

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

Postat: 8 februari 2023, 16:10:24
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.

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

Postat: 8 februari 2023, 16:18:24
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.

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

Postat: 9 februari 2023, 08:28:43
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.

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

Postat: 9 februari 2023, 09:11:28
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