Jesses följetång om AVR programmering i C...

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

absolut... omröstning! :tumupp:

Synd att de inte hade samma kodexempel i alla stilar... det blir inte direkt lätt att jämföra läsbarhet då.

Så någon (no no, inte jag!) borde skriva ett mycket kort program och sedan göra ett antal likadana kopior med olika stil, så kan vi rösta ...
Användarvisningsbild
Icecap
Inlägg: 26658
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Jesses följetång om AVR programmering i C...

Inlägg av Icecap »

Jag kör hårt med Whitesmiths style och en omröstning är ung. som att rösta på vad som smakar bäst: kaffe, te, choklad. Det är mig totalt likgiltigt vad ni andra röstar, jag gillar ÄNDÅ vad jag gillar varför en omröstning är total onödig.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

Självklart är den onödig! Det är bara för nöjet att få rösta, bråka med de andra om hur de röstade fel osv... dev. ren underhållning. :razz: ungefär på samma nivå som detta.
Senast redigerad av jesse 3 januari 2010, 17:01:02, redigerad totalt 1 gång.
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Re: Jesses följetång om AVR programmering i C...

Inlägg av SvenW »

Lite mer än ren underhållning. Ett klart utslag kanske frälser människor från att trilla ner i Whitesmiths-stilen :)
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

haha :lol:
Jag tror jag ligger närmast K&R style.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1355
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: Jesses följetång om AVR programmering i C...

Inlägg av baron3d »

Ett stort JAtill K&R style, men usch och fy till Whitesmiths och GNU.
Whitesmiths style och GNU style borde förbjudas enligt lag!
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

Re: Jesses följetång om AVR programmering i C...

Inlägg av E85 »

Jag kör med Allman style eftersom jag vant mig vid det i Visual Studio och tycker det ser bäst ut.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

Nåja... ska vi fortsätta tjata om stilar får det bli en ny tråd. Nu mer om C...

Det är svårt att simulera program som innehåller test av flaggor som inte stöds av simulatorn och med fördröjningar överallt som gör att simuleringen tar flera minuter... så jag har lagt in följande i början av programmet: :idea:

Kod: Markera allt

#define simulator 1

#ifdef simulator
	#define delay_ms
	#define delay_us
	#define timerTest 1
	#define TIMER_PRESCALER 0b010
#else
	#define delay_ms _delay_ms
	#define delay_us _delay_us
	#define timerTest (TIFR & (1 << OCF0A))
	#define TIMER_PRESCALER 0b100
#endif
När jag ska programmera kretsen så sätter jag bara // framför första raden så går programmet som önskat.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

Intressanta upptäckter kring optimering av kod

Tog mitt mest komplexa program, tog bort alla "delay" och körde det med olika optimeringar. Trodde att det skulle gå fortare att köra koden i processorn om den var optimerad, men för det mesta blev det tvärt om: optimeringen påverkade bara kodstorleken positivt:

Kod: Markera allt

Optimering    kod    körtid
-O0          9020     65.85mS
-O1          7142     58.93mS
-O2          6654    257.53mS
-O3         14352    253.87mS
-Os          6188    255.12mS
Det går väldigt långsamt när optimerigen är påslagen. Os tar mer än 4 gånger så lång tid att köra än -O1 :shock:
Nu är det inte den perfekta koden att testa på, då UART:en tar en fix tid att sända. Jag skickar ca 80 tecken, vilket borde ta 47 mS - alltså den mesta tiden i ooptimerad kod. Resten av programmet manipulerar en himla massa data ... Vad sjutton den sysslar med när den är optimerad som tar sån tid ska jag försöka ta reda på...
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Jesses följetång om AVR programmering i C...

Inlägg av bearing »

Måste vara någon bugg i de senare optimeringarna. Minns att jag läst någonstans att avr-gcc-optimeringen över en viss nivå har buggar.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

Verkar vara något fel på simulatorn. Den ger toklånga tider första gången man kör den efter att ha kompilerat om (fast bara ibland :sick: ). Nästa gång blir det mer normala tider. Så min statistik ovan var alltså felaktig. Dock stämmer ju kodstorleken. -O3 gör om alla "enkla" funktioner till kodsnuttar istället - och mitt program består nästan bara av massor av små funktioner... därför sväller koden.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Jesses följetång om AVR programmering i C...

Inlägg av bearing »

Bra att höra. Kan ju hända att den som skrev om buggarna själv gjorde samma misstag, eller helt enkelt hade kodat fel (utan volatile där det behövs, o.s.v.).

Varför tar det lång tid? någon loop som går runt?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

Eftersom det var svårt att upprepa det hela så tröttnade jag på att försöka kolla orsaken. Jag nöjer mig med att tiderna blev "normala" när simulatorn väl fungerade som den skulle.
SvenW
Inlägg: 1156
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Re: Jesses följetång om AVR programmering i C...

Inlägg av SvenW »

Vilken simulator använder du? Hur mäter du tiderna?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Jesses följetång om AVR programmering i C...

Inlägg av jesse »

AVR Studio4.16 med "AVR simulator 1, 0, 2, 1". Det finns en "AVR simulator 2" också, men den är ännu sämre i vissa lägen (saknar vissa funktioner). Det var en allvarlig bugg i AVR Studio 4.17 så jag behöll 4.16. Men jag har hört att det har kommit en 4.18, orkar bara inte krångla med att avinstallera / installera igen.
Skriv svar