> Hur skriver man fruktansvärt dålig kod i C?
Exakt på samma sätt som i vilket annat verktyg som helst.
Det är inget speciellt med C i det avseendet. Det går att
skriva dålig kod i vilket språk/verktyg som helst...
> Men efter vad jag läst här i tråden verkar det som om man kan få gratis optimering med Atmel Studio och AVR.
Begreppet "optimering" betyder inte alltid samma sak. Om du seriöst vill göra
jämförelser så måste du kolla dokumentationen och jämföra i detalj vilka
optimeringar som de olika verktygen erbjuder i sina olika versioner. Det är
meningslöst att bara säga att det ena verktyget "optimerar" och det andra
"optimerar inte". Det säger inte ett smack. Inte heller "gratis optimering".
> De två PIC jag fn använder är 16F690 och 16F1938. Den senare är definitivt inte stenålder.
De nya PIC16F1xxx är riktigt trevliga och vissa operationer går att göra riktigt effektiva
tack vara den rakare/renare arkitekturen och en del nyheter i "enhanged midrange" tack
vara t.ex "linear adressing" och nya indexregister och nya indexerade instruktioner.
I databladet ligger de nya instruktionerna under "C-compiler optimized", vad nu det betyder.
> Men jag kan inte programmera den direkt från MPLAB dp jag bara har PICkit 2.
Den stöds inte av den integrerade PICkit2 drivern i MPLAB, men det är inget problem.
Jag kör (just med 1938) med det fristående PICkit2 programmet uppsatt med
pollning av HEX filen, så ett klick på "make" räcker för att flasha om processorn.
> Observera att ett program som tar mindre minne behöver inte bli snabbare.
> I värsta fall kan det bli tvärt om att optimering mot minnesstorlek medger
> sämre tidsegenskaper beroende på hur optimeringen sker.
Inte bara i värsta fall, det är nog det vanliga. "Optimize for speed" ger normalt
större men snabbare program och "optimize for size" ger mindre men långsammare
program. För att generallisera lite...
> Låter klart intressant om programmering i C ger bättre optimering av koden jämfört med PIC.
Jag fattar inget av den där meningen. Vad menar du?