Hur kan jag få tag på prestandaversionen av Nucleo?
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Ja? Varför uppfinna hjulet på nytt? Divition med heltal är inget nytt. Alltså borde det finnas färdiga bibliotek? Jag tänker inte skriva unika funktioner till olika nämnare och täljare. Då använder jag FPU:n istället.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Men snälla nån, har du överhuvudtaget en aning om vad du håller på med?
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Låt säga att du har a=8,125 och b=1,25DanielM skrev:>> Men det verkar ju vara som vanlig här. Du ignorerar inlägg och fortsätter på inställd kurs.
Visa mig ett exempel då istället för att kritisera? Liggande stolen är lite för gammalt för mig. Sådant lärde jag mig inte när jag gick i skolan.
Vi hade datorer och räknare för våran lärare tyckte ändå att det var ingen idé att repitera division och addition från lågstadiet.
På universitetet var det MATLAB som gällde. Fanns ingen handräkning där.
Då kan du välja att representera 8,125 med 65, alltså med skalningsfaktorn 8. 8 decimalt är 1000 binärt. En jämn tvåpotens med 3 nollor. Mycket enkelt att räkna med för en dator, precis som att jämna tiopotenser är enkla för oss som är vana vid decimala systemet. 1000 är samma som 2^3 eller 1 << 3. 3 skift
b kan representas av 5 med skalningsfaktorn 4, 2 skift.
Divisionen blir a/b utförs som 65 / 5 = 13. Eftersom att a hade skalningen 3 skiftningar, och b 2 skiftningar, kommer kvoten ha en skalning som är differensen dem emellan, d.v.s 1 skift. Med andra ord är skalningsfaktorn 1 << 1 = binärt 10, decimalt 2. 13 representerar därmed 6,5. 8,125 / 1,25 är 6,5, så uträkningen fick rätt resultat.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Så man ska inte följa Stefan Mishook's råd?
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Det var ju det jag sa=)DanielM skrev:Ja? Varför uppfinna hjulet på nytt? Divition med heltal är inget nytt. Alltså borde det finnas färdiga bibliotek? Jag tänker inte skriva unika funktioner till olika nämnare och täljare. Då använder jag FPU:n istället.
Om processorn är långsam, saknar float-stöd, och har begränsat minne, då hittar man på finurliga lösningar. Ifall man är van vid dessa finurliga lösningar ser man dem som så naturliga och självklara att man tycker att mycket enkla/spartanska processorer duger åt även avancerade uppgifter, förutsatt att uppgifterna löses med dessa finurliga metoder. Du saknar den bakgrund som behövs för att förstå varför man gör såhär, och verkar inte heller intresserad av att lära dig mer, baserat på ilskan du visar när du börjar skrapa på ytan. Därför skrev jag inlägged om att jag var "orolig" när du var inne på att använda fixed point. Du fick iaf ett exempel av mig ovan. Ifall du tyckte om den typen av matematik kanske du skulle vilja fortsätta att lära dig mer om detta, men jag tvivlar på att du gör det. =)
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Processorn är 180 Mhz och har float-stöd. samt 128 kb RAM, där jag använder inte ens allt.
Jag är inte ilsken. Har inte varit arg på 15 år. Jag är däremot lite utav en arbetsledare i mitt arbetsliv där jag ofta ställer frågan "Tid & Kostnad". Hur mycket tjänar jag på att använda unint32_t istället för float om jag har möjlighet att använda float? Om det skulle visa sig att jag vinner lite tid extra med uint32_t istället för float, men det var en hel del jobb att implementera. Då tycker jag det smakar mindre än vad det kostar.
Jag är inte ilsken. Har inte varit arg på 15 år. Jag är däremot lite utav en arbetsledare i mitt arbetsliv där jag ofta ställer frågan "Tid & Kostnad". Hur mycket tjänar jag på att använda unint32_t istället för float om jag har möjlighet att använda float? Om det skulle visa sig att jag vinner lite tid extra med uint32_t istället för float, men det var en hel del jobb att implementera. Då tycker jag det smakar mindre än vad det kostar.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Suck, du fattar tydligen ingenting, over and out, for now
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Du vet att det ger inget att idiotförklara den man vill lära ut. Har arbetat som lärare på ett gymnasium och dumförklara eleverna är något man man sist skulle göra. Ödmjukhet är en styrka inom läraryrket.
Men om jag gör ett försök igen.
Låt oss säga att jag har två värden av typerna uint32_t. Ena är 4095 och andra är 1023. Om jag delar 4095/1023 = 4.00293255132.
Skulle man inte kunna säga att man får avrundingen uint32_t 4 då? Jag menar 32-bit har inte en oändlig upplösning.
Edit:
Detta var ingen bra idé!
Men om jag gör ett försök igen.
Låt oss säga att jag har två värden av typerna uint32_t. Ena är 4095 och andra är 1023. Om jag delar 4095/1023 = 4.00293255132.
Skulle man inte kunna säga att man får avrundingen uint32_t 4 då? Jag menar 32-bit har inte en oändlig upplösning.
Edit:
Detta var ingen bra idé!
Senast redigerad av DanielM 7 december 2019, 00:49:29, redigerad totalt 1 gång.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Beror väl på produktionsvolymen. Ifall din temperaturregulator visar sig bli en världsnyhet efter inslag på SVT Aktuellt och CNN, samt skyddad med ett fint patent, då lär den snart ha kopierats och programmerats av någon entusiast i västvärlden till en enkel 8-bit-processor, som denne entusiast lägger upp på github. Sen hittar några kineser denna kod. De sätter igång massproduktion och säljer på alibaba för 2 kronor och 13 öre per kretskort. Vilket ska jämföras med de 213 kronor som kretskortet med en STM32L4, som en konsult designat åt dig, kostar vid produktion i Kina i tusental. Och sedan slutligen jämföras med 21300 kr plus moms som den färdiga produkten kostar att installeras i källaren på en kommunalt ägd fastighet, när alla påslag gjorts i samtliga led, efter att du har lyckats lobba in att kommunen ska använda denna produkt för att reglera temperaturen i deras lokaler. Privata bolag lyckades du inte sälja så många till, eftersom att dom flesta köpte den piratkopierade via Alibaba för 2 kronor och 13 ören. Dom köpte ett tiopack var, kunde vara bra att ha, tänkte dom. Och sen hade dom så att det räckte även till VDns privata pool på landstället i skärgården.DanielM skrev:Processorn är 180 Mhz och har float-stöd. samt 128 kb RAM, där jag använder inte ens allt.
Jag är inte ilsken. Har inte varit arg på 15 år. Jag är däremot lite utav en arbetsledare i mitt arbetsliv där jag ofta ställer frågan "Tid & Kostnad". Hur mycket tjänar jag på att använda unint32_t istället för float om jag har möjlighet att använda float? Om det skulle visa sig att jag vinner lite tid extra med uint32_t istället för float, men det var en hel del jobb att implementera. Då tycker jag det smakar mindre än vad det kostar.
Senast redigerad av bearing 7 december 2019, 00:51:25, redigerad totalt 1 gång.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Inga variabeltyper har det. 32-bit har några fler värdesiffror än 32-bit float, men betydligt lägre dynamiskt omfång. När man räknar med heltal och "fast kommatecken" måste man veta så mycket om processerna att man kan garantera att det dynamiska omfånget aldrig överskrids, ty man bestämmer omfånget i förväg. Med float ändras bara exponenten några steg ifall omfånget visar sig vara några tvåpotenser högre eller lägre.DanielM skrev:Jag menar 32-bit har inte en oändlig upplösning.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Jag tänker bara ha denna sak för mig själv. Men jag förstår vad du menar. Man ska inte använda för stor processor om behovet inte finns.
Edit:
Undra om en FPU är snabbare än om man dividerar binärt?
Edit:
Kod: Markera allt
100111 = 39 = a
1001 = 9 = b
a/b = 39/9 = 4.3333333333
a/b = 100111/1001 = 100.01010101
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Om du vill jämföra division av heltal och division av flyttal finns det för de flesta processorer en "instruction set summary" där exekveringstiden ofta är angiven.
Man kan också jämföra genom att utföra några operationer i två loopar, och mäta hur lång tid respektive loop (heltals- respektive flyttalsbaserad) tar att köra.
Man kan också jämföra genom att utföra några operationer i två loopar, och mäta hur lång tid respektive loop (heltals- respektive flyttalsbaserad) tar att köra.
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
För att få resultatet 100.01010101 (8 bimaler) måste du först skifta a 8 steg vänster innan divisionen, annars trunkeras de värdesiffror som sedan blir bimaler i resultatet, d.v.s resultatet skulle bara bli 4.DanielM skrev:Jag tänker bara ha denna sak för mig själv. Men jag förstår vad du menar. Man ska inte använda för stor processor om behovet inte finns.
Edit:
Undra om en FPU är snabbare än om man dividerar binärt?Kod: Markera allt
100111 = 39 = a 1001 = 9 = b a/b = 39/9 = 4.3333333333 a/b = 100111/1001 = 100.01010101
a/b = (100111 << 8 /1001) >> 8 = 10011100000000/1001 >> 8 = 10001010101 >> 8 = 100.01010101 fixed point= 4,33 dec
Re: Hur kan jag få tag på prestandaversionen av Nucleo?
Finns det i detta datablad? Jag hittar dock inte.
https://www.google.com/url?sa=t&rct=j&q ... 3PxzNjfNab
https://www.google.com/url?sa=t&rct=j&q ... 3PxzNjfNab