Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Mikro C for Pic - Good ,Bad or Ugly ?

Status
Not open for further replies.

Wp100

Well-Known Member
Trying to help a friend out who has been using PicBasic and now realises its limitations.

He does not seem to take the Arduino C++ and has been mentioning Mikro C for Pic which looks very glossy on its web site.

Not something I ever tried, opinions or other options would be welcome.

thanks
 
MicroC is quite a powerful tool...

[ The Good ]
There is a plethora of libraries...
From the second you buy it you can produce working devices...
Virtually EVERY library you can think of has been included....
Excellent optimizer..
Many tools have been produced..
Many development boards have been made..
The price is very appealing...

[ The Bad ]
All the libraries are built in...
There is ( even though Mikroe deny it ) crosstalk when certain libraries are used together..
Optimizer can be too abrasive and doesn't like being disabled..
Code is NOT portable.... Not in the slightest....

[ The Ugly ]
I really don't like the IDE although very powerful... The text editor is overly helpful to the point of not being..
The forum help isn't very fast ( although the support site is ) It can take days for a response..
As these guy's are Serbian and describing problems can cause problems ( if you know what I mean )..

On the whole, a good cheap tool and gets the job done.... They have launched many micro tools and upgrades are becoming slow to arrive... STM arm and FT90x are dominating their development at the moment!!

I have the full pro version of mikro c for pic32 and the demo of mikro c for pic, but I don't think I'll develop for small devices... I have had MANY issues with mikro c for pic32, the main one is libraries conflicting!! I have had to re-wite some of my libraries and use them in the mikro c compiler..
 
I have always used mikroC PRO Compilers and I never had problems. I just love mikroElektronika Compilers. I also have mikroBasic and mikroPascal PRO Compilers.
 
[ The Bad ]
All the libraries are built in...
Optimizer can be too abrasive and doesn't like being disabled..
Hola Ian,
Could you elaborate briefly?
 
mikroE provides libraries for USB HID, LCD, I2C, SPI, UART, MMC and many other things. If you download and install the mikroC PRO PIC demo Compiler and open it then at the right side of the app you will see the list of libraries. You can download more libraries from libstock.com and install it. These are compiled libraries. So, there will be no source code available for the libraries. If you want to see their code then compile it and view the .asm file and it will show asm code of the library.
 
The libraries are pre-built... They are included with the use of a check box.... If you need to use a library ( say ADC ) you check the relevant box... HOWEVER!!! They do not let you know what resources are used within their library. So you cannot determine what resources are left to use... Lets assume the ADC library and the touch screen library are used in a single application... As soon as you ask the ADC library for a sensor reading, the touch panel stops working... Obviously they are both using the same resource but should work together, but they don't... MikroE have workrounds, but each release changes these so they need to be re-applied..

The optimizer is set at level 5 by default... There is a thing called SSA ( single static assignment ) which is on.. If you turn it off there are many errors.... But it causes byte alignment errors.... If you do a function call with a "byte" return type, it doesn't always return what you want... Turning off SSA fixes it but breaks other sections... The other "byte / integer" issue is pointer passing.... "long*" works fine but "int* and "unsigned char*" don't always work, which can only be memory alignment... ( I have the 32 bit compiler.... Do not confuse this issue with the pic 18 /18 )

Also I will mention... Since version 3.6.1 this may have been addressed as I haven't seen it since I upgraded..
 
Status
Not open for further replies.
Back
Top