Matrisberäkningar med för STM32?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Glenn
Inlägg: 33774
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Glenn »

Al_Bundy skrev: Jag tycker att man borde kunna retunera flera värden samtidigt, utan att använda pekare. Detta skulle vara bra. Och lägg till objektorientering i C!
Då är det ju något helt annat, och bör kallas något annat, exempelvis C++..

Det är ju lite som att gnälla på att Morgan fortfarande använder träram i sina bilar, och tycka att dom borde gå över till moderna produktionsmetoder, när själva anledningen att deras kunder köper deras bilar ÄR att det är en helt nyproducerad handbyggd bil efter gamla byggmetoder.

(För den som inte vet vad Morgan tillverkar för bilar, ta en titt på https://www.morgan-motor.co.uk/ )
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Fast största kritiken mot C++ är att det är helt enkelt för stort. Tänk om man skulle lägga till lite småsaker i C som bara skulle underlätta helt enkelt. Lite grundläggande klasser skulle inte vara fel.

Men den som skapade C hade väll bra anledningar att forma C efter på detta sätt?
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Matrisberäkningar med för STM32?

Inlägg av Mr Andersson »

För stort? Bara för att vissa saker finns måste man väl inte använda dem?
Ett av designmålen med c++, som de håller stenhårt på, är att du betalar inte för det du inte använder.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Matrisberäkningar med för STM32?

Inlägg av Icecap »

C++ lär knappast vara speciellt mycket större än samma program i C. Visst kan det vara en aning mer overhead med klasser men det är ju ganska lite.

Problemet verkar mer vara att programmören som "bara kan jobba i C++" fläskar på med en massa onödigt.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Matrisberäkningar med för STM32?

Inlägg av Mr Andersson »

Jo det är exakt det som är problemet.
Alla exempel man ser online om att c++ inte passar för embedded är skrivna som att det är ett desktop-program.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Så det går inte fläska på med "onödigt" med C också? Vad är onödigt? Borde inte ett objekt vara mer nödvändligt än just en struct med massa funktionspekare?
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Matrisberäkningar med för STM32?

Inlägg av Icecap »

Mr Andersson: Jo, just DET problem är ju välkänd!
"Jag brukar ha alla resurser i mängder så det har jag väl här med! Vaddå? Kan jag inte svina med minnet?"

Al: såklart kan man fläska på med onödigt i C också. Oftast är det så att ovana programmörer väljer en lösningsmodell som kan optimeras ganska duktigt men det kan såklart läggas in en massa funktioner som inte används.

Fast funktioner som inte används brukar utlösa en varning och länkaren tar inte med dom.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Matrisberäkningar med för STM32?

Inlägg av Mr Andersson »

Al_Bundy skrev:Så det går inte fläska på med "onödigt" med C också? Vad är onödigt? Borde inte ett objekt vara mer nödvändligt än just en struct med massa funktionspekare?
Klart att det går. Det går att skriva dålig kod i alla språk.

Ingen aning om vad du menar med mer nödvändigt. En c++-klass med metoder är snabbare än c-varianten med funktionspekare.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Exakt. Borde inte C++ vara ett lämpligt språk för inbyggda system då? Allt har ju med den som skriver koden. Jag kan ju skriva skitdålig kod i C, men underbar kod i Python.

Om ni undrar om jag ska byta från C till C++? Nej, men jag gillar inte att folk slänger skit på C++ bara för att det är C++. Man använder det verktyg man är van med och det som fungerar.
Jag kör C för att STM32 erbjuder C som standard. Mer orkar jag inte bry mig. Men jag har åsikter att C borde ha faktiskt ha OOP för att underlätta.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

En fråga! Om jag ska kopiera värden från en matris till en annan, då skriver jag denna kod.

Kod: Markera allt

void copyval(matrix*a, matrix* b){
	int n = b->row;
	int m = b->column;
	float* ptr_a = a->data;
	float* ptr_b = b->data;

	// copy all values from matrix a to matrix b
	for(int i = 0; i < n; i++){
		for(int j = 0; j < m; j++){
			*(ptr_b++) = *(ptr_a++);
		}
	}
}
Jag anropar funktionen med

Kod: Markera allt

// Copy eye matrix to u
copyval(eye(n), u);
Där eye(n) retunerar en identitetsmatris. Måste jag radera denna eye(n) efter jag har "kört klart" copyval(matrix* a, matrix* b) ? Eller beror det på vilken kompilator jag använder? Just nu är det C11.
Shimonu
Inlägg: 295
Blev medlem: 21 oktober 2015, 22:44:33

Re: Matrisberäkningar med för STM32?

Inlägg av Shimonu »

Gafflar är dumma! Kan de inte vara som en liten skål också så man kan äta soppa med dem!? Hur svårt ska det var!? Varför ha man inte tänkt på det när man gjorde gaffeln?
Användarvisningsbild
AndLi
Inlägg: 17118
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av AndLi »

Om du frågar om C har en garbage collector så är svaret nej.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Betyder det att om jag omdeklarerar en int flera gånger så äts minnet upp?

Exempel:

Kod: Markera allt

for(int i = 0; i < 10; i++)
   int sum = 5*5;
Senast redigerad av Al_Bundy 15 januari 2019, 16:28:22, redigerad totalt 1 gång.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 908
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Matrisberäkningar med för STM32?

Inlägg av mankan »

Du kanske också ska kolla om matris a och b har samma dimensioner också annars riskerar du skräpdata eller programkrasch.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 908
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Matrisberäkningar med för STM32?

Inlägg av mankan »

Al_Bundy skrev:Betyder det att om jag omdeklarerar en int flera gånger så äts minnet upp?

Exempel:

Kod: Markera allt

for(int i = 0; i < 10; i++)
   int sum = 5*5;
Det är hög tid att du lär dig hur stack och heap fungerar oavsett programspråk.
Skriv svar