|
As a cost saving measure this little e-paper gadget I have lacks a video controller. Instead, there are 14 pins wired from my MCU directly into the e-paper panel itself.
I've rarely had to write code this utterly incomprehensible. Driving an e-paper display panel in software is stupid. Especially given this one is "misusing" the I2S hardware to do so.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: there are 14 pins wired from my MCU directly into the e-paper panel itself I think e-paper isn't the best medium to watch the Marvel Cinematic Universe
|
|
|
|
|
Cost saving or lack of software developer? I saw some weird s* because the product developers were all hardware men and couldn't find their way out of an Hello World with a map and a GPS navigator.
To the point that I saw two simple for cycles implemented with goto because the programmer just didn't know about cycles
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
It's hardware that it's missing, not software. =). It's not that the controller is hard to use - it's that there isn't one at all.
Real programmers use butterflies
modified 16-Feb-22 7:51am.
|
|
|
|
|
Is this an epaper where it remembers state if it loses power?
If yes, maybe they were going super minimalist for power savings?
|
|
|
|
|
all e-papers do as far as I've seen. It's probably actually more power hungry this way, because what was a simple hardware component is now a complex piece of software running on a 240Mhz 32-bit processor
Real programmers use butterflies
|
|
|
|
|
arduino / raspberry pi? just saying
|
|
|
|
|
I mean yes, I can use the MCU as a display panel controller, but that's like buying a humvee to drive to your mailbox and back.
Real programmers use butterflies
|
|
|
|
|
|
I just got my compiler to compute a sine table using a taylor series expansion.
Real programmers use butterflies
|
|
|
|
|
|
... In Q15.
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
... Fine for Cortex-M0.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
And M3, and M4 depensing on the system on chip RAM can be expensive real estate.
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Quote: and M4 What a damned luxury thingy you are messing with!
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
The one we're probably about to use is awesome, it has independent UARTs with internal self managed FIFOs for reading and writing, a Timer Capture interface that almost makes coffee... With respect to my experience with M0 and the current M3 it's truly luxury.
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
The biggest problem with accurate computation of trig. functions is not computation of the result from the reduced argument, but reducing the argument to the range [-Pi, Pi).
For example, 10^22 is accurately representable as a double. sin(10^22) requires finding the exact remainder of division by 2*Pi, which is non-trivial. See the following article for details: https://www.csee.umbc.edu/~phatak/645/supl/Ng-ArgReduction.pdf
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Restrict to [0 - Pi/2] and then flip the result depending on the argument. Either you get 1/4 of the memory usage or 4 times the interpolation points.
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
You still need to reduce the argument to that range, which is a major source of inaccuracy. That is what I pointed out.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Yeah I actually thought in fixed point, where accuracy is lost at the very beginning (but it's easier to calculate).
GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
For a theoretical math library function, true. But for practical applications, who uses angles beyond maybe a few tens of radians?
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
In order to calculate sin(x), you must first reduce the argument by calculating y = fmod(x, Pi/2). This entails subtraction of two numbers that may be very close to each other, i.e. you may get catastrophic cancellation and loss of accuracy. In order to avoid this (even for relatively small numbers), you must use a more accurate version of Pi than can be contained in a double.
A high-quality floating-point library will perform the reduction at the highest accuracy for all finite values representable by double. This may be overkill for some embedded software (where, as you say, the angles may be small), but in that case there should be a way of indicating whether the result has any significance. Failure to do so can lead to some rather odd results...
(The article I referred to in my earlier post (https://www.csee.umbc.edu/~phatak/645/supl/Ng-ArgReduction.pdf) has a table showing how different compilers miscalculated sin(10^22) and cos(10^22))
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Now y'all are talking python. I was over here talking C++.
Real programmers use butterflies
|
|
|
|
|
That was one of my first Fortran assignments back up in 82 or 83!
Back then their approach to teaching software development was sort of like “Here’s a dictionary- now write a novel!”
Don’t know that it has changed much (aside from the Fortran part!).
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
My friend Will couldn’t believe that Tripp’s dog Harley could talk, so Tripp asked him a question.
“How does sandpaper feel?”
“Rough!” said Harley.
Will shook his head still not believing, so Tripp tried again.
“What is on top of the house?”
“Roof!” replied Harley.
Will still didn’t believe, so Tripp tried one more time.
“Okay then, who is the best baseball player of all time?”
“Ruth!” yelled Harley.
Will just walked away shaking his head, disappointed.
Harley turns to Tripp and says, “Does he think it’s Mike Trout?”
|
|
|
|