Vilken kompilator till MPLAB X

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

Som den fattigpensionär jag är så kör jag med gratisversionen av MPLAB XC8 compiler. PRO versionen går ju nästan på sanslösa $1000. Jag använder normalt mikroC PRO som kostade 2000 kr när jag köpte den och den är 100% optimerad.

Tyvärr hittar jag inga drivrutiner till OLED via SSD1306 och SPI för mikroC. Att porta biblioteket för MPLAB X till mikroC är för mycket för mig just nu och att flytta mitt styrprogram till MPLAB X går inte på grund av platsbrist. Återstår att hitta någon bättre compilator till MPLAB X eller byta till en PIC18 modell med mer minne.


När jag kompilerade ett demoprogram för OLED:n så får jag följande information som ju är helt uppåt väggarna värdelöst. (Ja det är ju gratis.) Om jag skall använda denna display ihop med mitt styrprogram så kommer en minnet i PIC18F4550 inte att räcka till.

Min fråga är alltså: Finns det någon betydligt billigare lösning till MPLABV X än den värdelösa gratisversionen?
Running this compiler in PRO mode, with Omniscient Code Generation enabled,
often produces code which is 60% smaller and at least 400% faster than in
Free mode. The MPLAB XC8 PRO compiler output for this code could be
5588 bytes smaller and run 4 times faster.
See http://www.microchip.com for more information.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av sodjan »

Använder/behöver du USB delen av 4550'ian?
I så fall finns det ju några 18FnnJnn modeller, lite
oklart dock om de finns i DIP-40 kapsel, om du
använder eller måste ha det. Om du inte använder
USB så är ju urvalet betydligt större...
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

Nej, jag använder inte usb. En förutsättning är att den skall vara 40 pin DIL så att jag inte behöver göra om kortet.
universalkortet.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av sodjan »

Jo, jag gissade det... :-)

Hm, det verkar som att många av de nyare PIC18 finns i DIP
enbart upp till 28-pin.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45173
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av TomasL »

Optimeringarna är fullständigt värdelösa, eftersom du inte kan debugga dem.
Koden som genereras efter optimering är något helt annat än den du tror skrivs.

Vad är det för något du skriver som behöver så fruktansvär mycket minne?
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av sodjan »

Det som den fria kompilatorn säger ska nog tas med en nypa salt.
De oberoende tester som jag har läst ger kanske de skillnaderna
på specifika korta kodavsnitt/exempel, men det är inte lika säkert
att det ger det på en större applikation.

Men visst, jag har också sett exempel på där den fria kompilatorn
genererar kod som ingen programmerare hade skrivit själv. Väldig
underlig och ineffektiv. Men det är för vissa specifika exempel.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

Jag har skickat efter ett par PIC 18F46K22 de har dubbelt så mycket minne och fanns med 40 pin DIP.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

TomasL skrev:Optimeringarna är fullständigt värdelösa, eftersom du inte kan debugga dem.
Koden som genereras efter optimering är något helt annat än den du tror skrivs.

Vad är det för något du skriver som behöver så fruktansvär mycket minne?
All elektronik du kan hitta på att stoppa in i en 12.5 m båt som kan styras med µC och det är mycket om man vill. Det är möjligt att en 18F4550 räcker till men jag vill inte sitta och fundera på finurligheter för att spara minne.

Alla tankar, bränsle x3 vatten x3 skittank t.ex är ju inte linjära så det blir tabeller för att få rätt mängder. Tempgivare av alla de slag kräver drivrutiner. Övervakning av batteribankar, flera olika typer av displayer med olika drivrutiner m.m. det drar iväg när man har roligt. :)

Det där med debugga var något jag trälade med i början när jag programmerade i assembler. Nu använder jag bara C och strukturerar det såpass så jag har hittills inte behövt lägga ner någon tid på att debugga i någon större utsträckning. Jag har för det mesta en display på applikationen eller någon lysdiod som jag kan kolla olika flöden med. Debugga är för amatörer. :D
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45173
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av TomasL »

Då är nog sannolikt en 32kB prolle för liten, gissar antar jag.
Våra egna applikationer ligger strax under 80K, RTOS, 24 analoga givare (Temperatur ström och spänning), QVGA-display, 14 digitala ut och 13 digitala in, Kommunikation via modbus, egen bus samt ytterligare ett par vanliga seriebussar samt en bunt SPI och I2C pryttlar såsom AD och DA omvandlare mm.
I nuläget är i princip ingen kod speciellt optimerad, då den är skriven för att vara lättläst och enkel att felsöka.

XC8 är väl egentligen Hitec C8.
Du kan ju alltid testa den gamla versionen (kräver det gamla IDE't har jag för mig) dvs MCC18
janno
Inlägg: 403
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: Vilken kompilator till MPLAB X

Inlägg av janno »

18F46K22 har väl 64K programminne, nästan 4K RAM och 1K EEPROM.
Jag har använt den till (nästan) alla mina hobbyprojekt då den har det mesta jag behöver, USB kan man få via nån RS-232 omvandlare. Enda gången jag lyckats fylla minnet är när jag tryckte in Microchips TCP/IP stack + lite annat. Och med 64MHz så hinner man med det mesta. Om jag får slut på IO så använder jag MCP23S17 IO-Extender (16-IO ytterligare) via SPI med några sådana så har man IO så att det blir över. De funkar ju bra på 28-pinnars varianterna också.
Spännande projekt du har för övrigt. Jag kör själv med XC8, gratisversionen och tycker att det fungerar väldigt bra. Sen har jag på sistone lekt en del med MPLAB X Code Configurator vilket gör det oförskämt lätt att få alla funktioner på kretsen att göra det man vill, då den genererar alla inställningarna.
Jag skulle dock önska att Microchip kunde använda nått bättre IDE än netbeans t.ex. Visual Studio (fast det är väl mest för att den använder jag yrkesmässigt så man är van vid den).
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45173
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av TomasL »

Visual Studio (fast det är väl mest för att den använder jag yrkesmässigt så man är van vid den).
Kan inget annat än att håll med.

För att återgå, hur mycket fonter har du och hur stor plats tar de?
Vi använder 3 fonter, totalt 13,5 k.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

Som det ser ut nu så har jag 2 fonter i en OLED (SSD1306) och 2 fonter i en 4X20 LCD (HD44780) och det tar inte så mycket plats. Jag skulle vilja ha in en 3.2inch TFT LCD 240x320 RGB Touch Screen Display Monitor Panel Module som jag har monterad på instrumentpanelen på en chipKIT Uno32 men den får jag nog kommunicera med via I2C för att mata in vad jag vill att den skall visa. Den går inte att implementera i PIC18xxxxx. Kompileringen ser ut så här:
C:\Documents and Settings\Owner\My Documents\mpide\libraries\UTFT\UTFT.cpp:63:68: note: #pragma message: Compiling for chipKIT UNO32 (PIC32MX320F128H)
Binary sketch size: 103412 bytes (of a 126976 byte maximum)
Här är det inte långt kvar till taket heller tyvärr, för det fattas en del funktioner som jag vill ha in även här.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45173
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av TomasL »

Kör du någn form av ARDUINO, eller?
Skippa libbarna skriv egna drivisar.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Vilken kompilator till MPLAB X

Inlägg av SeniorLemuren »

Njae, den heter chipKIT Uno32 men det är just för att den har samma mekaniska layout som Arduino Uno. Annars är den så långt från arduino man kan komma. Den är bestyckad med en PIC32MX320F128H som snurrar med 80 Mhz jämfört med Arduinos 16 Mhz.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45173
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vilken kompilator till MPLAB X

Inlägg av TomasL »

Och på dina blder är det 18F, knappast 32f, vad använder du egentligen?
Skriv svar