I too have gone the other way around. I was working with the ATmega series for a long time, then I got an arduino uno as a gift and have used it for quite a few things. The one thing I have found the Arduino most useful in is testing new chips. When you are working with an unfamiliar chip (unfamiliar to you or new chip in general) you can generally write some code for the arduino and be sure that the arduino is not the problem. This is one of the most annoying things in hardware hacking, when testing you are not sure where the point of failure is. Having an arduino, or similar boards for that matter, eliminates the lurking suspicions that maybe the test gears is the problem instead of the chip being tested.
you do loose speed in many arduino functions, you do loose specific hardware advantages in some situations, you do gain more portability, and it is easier to rapidly produce software due to the core libraries and the abundance of setup being done for you.
Another quick question, is there anyway to work around these issues by say creating your own libraries for these instances?
My assumption is that since it is so much easier to use, that you must lose something.So, my question is what do you give up by using Arduino vs. straight up AVR through one of the above mentioned methods?Do you lose speed, do you lose some flexibility?Any comments would be appreciated.
The most obvious is digital write vs PORT, digital write might take 40us PORTB |= (1<<PB2); might take 4us. Or lets say you want to talk to a serial device that uses odd parity, you might have to go out and tickle some registers manually.QuoteAnother quick question, is there anyway to work around these issues by say creating your own libraries for these instances?yea theres nothing stopping you from dropping AVRGCC (which is not the same as whats used in studio, but its AVR and C++) or ASM code in the middle of an avr sketch or library other than its harder for average users to read / change, and narrowing portability (like registers dont always stay the same in different AVR's)
not that I am aware of i2c supports normal and fast mode, serial supports 2400-115200 baud out of the box, with people pushing that up to 1Mbps, since they use the internal hardware