From ARDUINO IDE to other tools .

Hi all As a newbe to ARDUINO I ask myself what will be in case I will want to switch to other AVR tools like CROSSWORKS FOR AVR ?

Will it be a demanding learning curve to acquire the specifics of the C code of that tool after getting used to ARDUINO C dialect ?

Thank Elico

“The Arduino C dialect” is a load of rubbish. The Arduino is programmed in standard C++. There are certain macros provided, and certain functions, such as digitalRead() that making using the hardware easier, that won’t necessarily be available in other tools. Learning to do without them may or may not be easy.

As an Arduino newbie, why are you planning to use something other than the IDE?

Other tools support in-circuit debugging.

Because i am not 100% that ARDUINO is the long term for me .

The problem with ARDUINO IDE is the small number of ATMEL AVRs it supports , unlike the CROSSWORKS for AVR .

That is my big question that stands in front of me before I make the final decision regarding THE tool I want to learn and get used.

I am aware of the BIG advantage of ARDUINO IDE the SERIAL.PRINT() command that makes debugging easy and avoids the costly ICD and ICE tools .

That makes my decision harder.


What kind of avrs r u planning on using? There are loads of avrs that people have gotten to work with the ide, enough atleast to fit most applications

Will it be a demanding learning curve to acquire the specifics of the C code of that tool after getting used to ARDUINO C dialect ?

Assuming you know C/C++, and you are comfortable programming the Arduino, you'll probably be comfortable with a different IDE in about a day.

If you go with a different microcontroller (especially a different microcontroller manufacturer or "family") you'll need to spend some time studying the hardware (inputs/outputs, timers & other features, etc.). The Arduino hardware description boils it down to about 10 pages, telling you most of what you need to know, whereas the actual ATmega data sheet is over 400 pages.

With the Atmel/Arduino chips, I've only used the Arduino IDE... But, whenever I'm using a new compiler/IDE/system, my goal for the 1st day is to get "Hello World" (or 'Blink LED") compiled and running. If I can get the software installed, configured, figured-out and working in a half-day, I'm happy! There are usually a few "glitches" and "gotchas". It may take a bit longer to learn to use the various feature of the IDE. ( I'm not an expert programmer, but over the years I've done a little programming in several different languages on several different platforms/systems.)

I was AMAZED when I was able to download and install the Arduino IDE, and get "Blink LED" compiled & running in about 15 minutes!!!!

Typically with a microprocessor/microcontroller, you might need to buy a separate programmer and/or a hardware development/evaluation board. With the Arduino, you get a ready-to-run board with a pre-installed bootloader. That, along with the free open-source IDE makes it cheap & easy for hobbyists to get started.

The Arduino IDE is a great way to get started, because it takes a lot of the setup work out of your way. So, you can write a few lines of code and click a few buttons and have immediate results.

That same convenience does affect flexibility. The nice part is, the Arduino "dialect" is just a handful of convenient libraries, that are all standard C++. If you already know C++, you can migrate out of the IDE and into something like AVR Studio (Atmel's official environment based on Visual Studio) pretty easily. You can use the Arduino libs outside the IDE, so you can continue using them if you want, or rewrite / import "digitalWrite()" and the Serial class in your project, or remove all references entirely.

I have a post in the Software forum about setting up the Arduino libs in AVR Studio. I'm running into dependency issues because I code in C, and all the add-on libraries (like Ethernet, SD, etc.) are all in C++. But, since C++ can compile C, the easy fix would be just to call my project C++ and not use classes. I always do things the hard way, what can I say?

If you don't already know C/C++, you'll be tripped up by having to manage includes and defining function prototypes correctly. I'm not familiar with IDEs (I use gcc and xterm most of the time for PC development), so I ran into a learning curve with VS itself, but that's hardly insurmountable.