Matrisberäkningar med för STM32?
-
- Inlägg: 1407
- Blev medlem: 29 januari 2011, 21:06:30
- Ort: Lapplandet
Re: Matrisberäkningar med för STM32?
Från tidigare inlägg tror jag han menar saker som min_funktion(malloc(n))
Sparar du inte pekaren från malloc läcker du minne. Ingenting görs automatiskt.
Sparar du inte pekaren från malloc läcker du minne. Ingenting görs automatiskt.
Re: Matrisberäkningar med för STM32?
Nu är jag klar med mitt matrisbibliotek.
Den innehåller väldigt mycket som MATLAB kan. Grundläggande t.ex. QR-fakorisering, LU-faktorisering, pinv osv.

Re: Matrisberäkningar med för STM32?
Jo. Jag ska bara göra en exempellista på kommandon och praktiska exempel så man vet hur man ska använda denna
Kommer snart!

Re: Matrisberäkningar med för STM32?
Nu är den klar. Här är exempelkoden. Om ni hittar bättre lösningar eller liknande så säg bara till.
Något mystiskt som jag inte har lyckats lösa är denna.
Denna får jag vid denna kod.
Något mystiskt som jag inte har lyckats lösa är denna.
Kod: Markera allt
passing argument 1 of ‘create’ from incompatible pointer type [-Wincompatible-pointer-types]
Kod: Markera allt
/*
* Create a matrix
*/
float values1[5][5] = { { 1, 76, 86, 1, 5 },
{ 1, 5, -6, 0, 3 },
{ -5, 7, 3, 87, 3 },
{ -8, 3, 1, 4, -1 },
{ 7, 9, 1, 28, 4 } };
matrix* A = create(&values1, 5, 5); // <--passing argument 1 of ‘create’ from incompatible pointer type [-Wincompatible-pointer-types]
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Matrisberäkningar med för STM32?
Du ger en pekare till create some inte stämmer med typen du satt i deklarationen till create.
Re: Matrisberäkningar med för STM32?
Funktionen create har denna dekleration
Denna funktion får noteringen

Jag uppdaterar projektet.
Kod: Markera allt
matrix* create(float* arr2D, int n, int m);
Nu löste jag problemet!expected ‘float *’ but argument is of type ‘float (*)[5][5]’

Jag uppdaterar projektet.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Matrisberäkningar med för STM32?
Koden ser ju lovande ut (bara kollat den, inte testat). Bra jobbat!
Har du verifierat att den ger samma resultat som ditt matlab exempel du visade?
Hur lång tid tar det lösa 36x36 matriser med sv på stm32f4?
Har du verifierat att den ger samma resultat som ditt matlab exempel du visade?
Hur lång tid tar det lösa 36x36 matriser med sv på stm32f4?
Re: Matrisberäkningar med för STM32?
Tackar!
Jag har verifierat med GNU Octave, vilket använder samma MATLAB kod. Det stämmer.
Det har jag inte testat än. Jag vet inte riktigt hur jag ska kunna testa det. Det viktigaste för mig är att få konstant samplingsintervall. Hade jag kört detta på ett operativsystem så skulle jag få olika samplingsintervall. Men kör jag direkt C på en mikroprocessor (jag vet, man kör inte C direkt på en uC, men ni förstår vad jag menar) så kommer man få konstant samplingsitervall om temperaturen är konstant.
Jag har verifierat med GNU Octave, vilket använder samma MATLAB kod. Det stämmer.
Det har jag inte testat än. Jag vet inte riktigt hur jag ska kunna testa det. Det viktigaste för mig är att få konstant samplingsintervall. Hade jag kört detta på ett operativsystem så skulle jag få olika samplingsintervall. Men kör jag direkt C på en mikroprocessor (jag vet, man kör inte C direkt på en uC, men ni förstår vad jag menar) så kommer man få konstant samplingsitervall om temperaturen är konstant.
- Klas-Kenny
- Inlägg: 11759
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Matrisberäkningar med för STM32?
Ett enkelt sätt brukar vara att typ sätta en utgång hög innan du kör beräkningarna, sen sätta den låg direkt efter.Jag vet inte riktigt hur jag ska kunna testa det.
Sen är det bara att hänga på oscilloskopet.
Tiden det tar att sätta utgången hög/låg är i de flesta fall försumbar om man inte testar funktioner som går på väldigt få instruktioner.
Re: Matrisberäkningar med för STM32?
Du kan också sätta upp en timer eller systick med 1 ms upplösning och mäta ticks före och efter operationen
Re: Matrisberäkningar med för STM32?
Eller läsa "performance counter" före och efter och sedan beräkna skillnaden.
Re: Matrisberäkningar med för STM32?
Tackar.
Jag ska testa det. Kan inte ni testa det också? Lagar mat.
Jag ska testa det. Kan inte ni testa det också? Lagar mat.
Re: Matrisberäkningar med för STM32?
För att få konstants samplingsintervall rekommenderar jag köra ADC mot buffer via DMA och använda timer för trigga varje ADC. efter X ADC sätter du upp interupt där du växlar DMA buffer. På så sätt kan du köra samplingen parallellt med matris operationer och kan använda i princip all cpukraft till beräkningar.
Vi vet ju inte vilka 36x36 operationer du vill göra.....
Vi vet ju inte vilka 36x36 operationer du vill göra.....