Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Dessa funktioner är farliga att använda, eftersom det inte finns någon kontroll av argumenten. Och det är väldigt enkelt att få det fel.
Därför är det bättre att inte använda dem överhuvudtaget.
Därför är det bättre att inte använda dem överhuvudtaget.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Då är det bättre att inte göra något, för då kan man inte ha gjort fel
Jag hade ett problem när jag skulle använda sprintf med float. Gick inte. Då fick jag använda ett tredjepartsbibliotek för sprintf. Då fungerade det. _sprintf med andra ord som funktionen hete.
Hur som helst kommer jag bygga om min grunka (PCB) helt från grunden nu. Jag vill använda mig av STM32F373C8 och inte av STM32F373R8 som jag använder nu.
Men nu har man ju lärt sig vad man ska kolla efter och lite tips från er alla. Så hoppas det ska gå bättre denna gång
Denna gång väljer jag att ha en kristall med också. Jag bara gör det, för att vara på den säkra sidan. Inte för att jag känner att jag har ett behov av den.
Jag hade ett problem när jag skulle använda sprintf med float. Gick inte. Då fick jag använda ett tredjepartsbibliotek för sprintf. Då fungerade det. _sprintf med andra ord som funktionen hete.
Hur som helst kommer jag bygga om min grunka (PCB) helt från grunden nu. Jag vill använda mig av STM32F373C8 och inte av STM32F373R8 som jag använder nu.
Men nu har man ju lärt sig vad man ska kolla efter och lite tips från er alla. Så hoppas det ska gå bättre denna gång
Denna gång väljer jag att ha en kristall med också. Jag bara gör det, för att vara på den säkra sidan. Inte för att jag känner att jag har ett behov av den.
Senast redigerad av DanielM 2 november 2020, 00:04:29, redigerad totalt 1 gång.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Man måste ju inte använda osäkra funktioner, det finns alltid alternativa sätt.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Lustigt att du anser att C programmeringsspråket innehåller osäkerheter. Det som har prisats av gurus världen över för att vara det mest genomtänkta och utvecklade språk någonsin.
Du har inte funderat på att dela med dig av dina kunskaper till dom som utvecklar C-standarder och dess kompilatorer? Tror du kan tjäna enormt på detta.
Du har inte funderat på att dela med dig av dina kunskaper till dom som utvecklar C-standarder och dess kompilatorer? Tror du kan tjäna enormt på detta.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Javisst, och at.. str.. mem.. funktionerna samt några fler är kända för att vara osäkra och ibland farliga, just därför undviker man dem i största möjliga grad.
Det är inga nyheter, utan ett välkänt faktum bland de som programmerar.
C är jättebra, eftersom man kan göra fantastiska saker, men det är också så att man samtidigt kan göra fantastiskt fel.
Fundera på följande två rader:
if (a == 1){.........}
och
if (a = 1){.........}
Bägge rader är fullt valid C-kod, och ger inga som helst kompileringsfel.
Dock, LINT och liknande verktyg varnar troligen för en av dessa rader.
Det är inga nyheter, utan ett välkänt faktum bland de som programmerar.
C är jättebra, eftersom man kan göra fantastiska saker, men det är också så att man samtidigt kan göra fantastiskt fel.
Fundera på följande två rader:
if (a == 1){.........}
och
if (a = 1){.........}
Bägge rader är fullt valid C-kod, och ger inga som helst kompileringsfel.
Dock, LINT och liknande verktyg varnar troligen för en av dessa rader.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Varför fungerade det inte med sprintf() för dig?DanielM skrev: ↑1 november 2020, 23:57:01 Då är det bättre att inte göra något, för då kan man inte ha gjort fel
Jag hade ett problem när jag skulle använda sprintf med float. Gick inte. Då fick jag använda ett tredjepartsbibliotek för sprintf. Då fungerade det. _sprintf med andra ord som funktionen hete.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Jag tror det har något med FPU att göra. Jag försökte aktivera -u float flaggan, men det blev ingen skillnad.
Hittar dock inte biblioteket nu. Men den finns på GitHub.
Hittar dock inte biblioteket nu. Men den finns på GitHub.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Det finns väll utrymme för detta också?TomasL skrev: ↑2 november 2020, 00:13:05 Javisst, och at.. str.. mem.. funktionerna samt några fler är kända för att vara osäkra och ibland farliga, just därför undviker man dem i största möjliga grad.
Det är inga nyheter, utan ett välkänt faktum bland de som programmerar.
C är jättebra, eftersom man kan göra fantastiska saker, men det är också så att man samtidigt kan göra fantastiskt fel.
Fundera på följande två rader:
if (a == 1){.........}
och
if (a = 1){.........}
Bägge rader är fullt valid C-kod, och ger inga som helst kompileringsfel.
Dock, LINT och liknande verktyg varnar troligen för en av dessa rader.
Exempel om man vill tilldela en variabel ett värde i en if-sats.
if ((a = 1) + b > c)
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Snälla nån, vad händer i en if-sats.
och vad är meningen med just en if-sats.
Javisst, är du en inkompetent programmerare så kan du göra tilldelningar i if-satser, eller om du tävlar i att skriva oläsbar kod.
du kan ju fundera på detta:
eller
och vad är meningen med just en if-sats.
Javisst, är du en inkompetent programmerare så kan du göra tilldelningar i if-satser, eller om du tävlar i att skriva oläsbar kod.
du kan ju fundera på detta:
Kod: Markera allt
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Kod: Markera allt
#include <math.h>
#include <sys/time.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
double L ,o ,P
,_=dt,T,Z,D=1,d,
s[999],E,h= 8,I,
J,K,w[999],M,m,O
,n[999],j=33e-3,i=
1E3,r,t, u,v ,W,S=
74.5,l=221,X=7.26,
a,B,A=32.2,c, F,H;
int N,q, C, y,p,U;
Window z; char f[52]
; GC k; main(){ Display*e=
XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
*D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
XEvent z; XNextEvent(e ,&z);
++*((N=XLookupKeysym
(&z.xkey,0))-IT?
N-LT? UP-N?& E:&
J:& u: &h); --*(
DN -N? N-DT ?N==
RT?&u: & W:&h:&J
); } m=15*F/l;
c+=(I=M/ l,l*H
+I*M+a*X)*_; H
=A*r+v*X-F*l+(
E=.1+X*4.9/l,t
=T*m/32-I*T/24
)/S; K=F*M+(
h* 1e4/l-(T+
E*5*T*E)/3e2
)/S-X*d-B*A;
a=2.63 /l*d;
X+=( d*l-T/S
*(.19*E +a
*.64+J/1e3
)-M* v +A*
Z)*_; l +=
K *_; W=d;
sprintf(f,
"%5d %3d"
"%7d",p =l
/1.7,(C=9E3+
O*57.3)%0550,(int)i); d+=T*(.45-14/l*
X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
*I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
179*v)/2312; select(p=0,0,0,0,&G); v-=(
W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
)/107e2)*_; D=cos(o); E=sin(o); } }
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Bara Galenskaparna skulle skriva så där.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Bägge programmen kompilerar felfritt och fungerar som tänkt.
Det är bara i C du kan göra något sånt.
Så, C är underbart, men livsfarligt.
Kan du gissa vad programmen gör?
Det är bara i C du kan göra något sånt.
Så, C är underbart, men livsfarligt.
Kan du gissa vad programmen gör?
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Nej. Programmet är skrivet av folk som vill testa gränserna hos C. Totalt ointressant att kompilera rappakalja än fast det fungerar.
Kod ska vara snyggt skrivet. Pedagogiskt, välbeskrivande, planerat och följa standarder. Inte "jävulskt smart" eller "optimerat som satan". Detta bäddar för att koden blir ej förstådd av andra.
Kod ska vara snyggt skrivet. Pedagogiskt, välbeskrivande, planerat och följa standarder. Inte "jävulskt smart" eller "optimerat som satan". Detta bäddar för att koden blir ej förstådd av andra.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Naturligtvis är det så, därför så gör man aldrig någonsin en tilldelning i en if-sats.
för att du skall veta, det första programmet är skrivet i original K&R-C och beräknar talet pi.
Det andra är ANSI-C och är en flygsimulator, naturligtvis, och det ser du ju.
Poängen är att med C kan du göra vad du vill, men det är inte helt lätt att göra saker rätt, så därför skall man vara försiktig med bibliotekskod, den kan funka i 99% av fallen, men inte nödvändigtvis i din applikation.
BTW, dessa program antingen vann eller var sk "runner-up" i IOCCC (International Obfuscated C Code Contest) där man skall skriva så korta fungerande program som möjligt, med en fullständigt obegripbar kod, och helst formaterarad på ett estetiskt sätt, som flygplanet ovan,
för att du skall veta, det första programmet är skrivet i original K&R-C och beräknar talet pi.
Det andra är ANSI-C och är en flygsimulator, naturligtvis, och det ser du ju.
Poängen är att med C kan du göra vad du vill, men det är inte helt lätt att göra saker rätt, så därför skall man vara försiktig med bibliotekskod, den kan funka i 99% av fallen, men inte nödvändigtvis i din applikation.
BTW, dessa program antingen vann eller var sk "runner-up" i IOCCC (International Obfuscated C Code Contest) där man skall skriva så korta fungerande program som möjligt, med en fullständigt obegripbar kod, och helst formaterarad på ett estetiskt sätt, som flygplanet ovan,
- Klas-Kenny
- Inlägg: 11343
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
ST har valt att inte stödja utskrifter av float i sin implementation av printf osv per default. För att spara lite minne tydligen, vilket är lite ironiskt när de förespråkar sitt "HAL" som äter upp det där sparade minnet och mer därtill.
Men går att aktivera utan tredjepartsbibliotek, se tex. här:
https://community.st.com/s/question/0D5 ... -in-printf
Fast med det argumentet så ska man ju helt låta bli att använda C. Så gott som allt i C är farligt, om man gör fel.
Re: Förslag på PWM, ADC, I/O och DAC IC kretsar med SPI?
Naturligtvis är det så, men det går alltid att göra på andra sätt.
Men som sagt, använder man dessa sk osäkra funktioner så måste man hålla tungan rätt i munnen.
Men som sagt, använder man dessa sk osäkra funktioner så måste man hålla tungan rätt i munnen.