GPS trackers are always interesting because they’re so versatile. Location-based services have exploded in the last couple of years, and are poised for more growth as we get further into the 2010’s. At the heart of all of these services is a GPS tracker, and a method of transmitting position data to a server, where a provider (or hacker) can do something useful with it.
In our previous Atmel tutorial, we talked about how to set up the powerful AVR Studio 5 IDE to incorporate Arduino libraries and projects. As flexible as AVR Studio 5 is, it had a few issues, and Atmel has been hard at work hustling the next major version out the door. Now, rebranded as Atmel Studio 6 (no longer just for AVRs!), the new version promises to be better, faster, and easier to use. Here, we’ll show you the quickest way to get up and running if you want to use Arduino code with all of the new features.
Note: This article explains how to set up the Atmel Studio 6 IDE for use with Arduino projects, step-by-step. It also notes on general setup for working with Atmel devices, background on the pros/cons of working with AVR Studio, and a few other tips. A table of contents is below; feel free to skip to any section that interests you.
Following up on our previous post on understanding floating point math and speed of operations on 8-bit AVRs, we ran across an excellent article today on Arduino math optimization. Alan walks through his implementation of an exponential moving average algorithm. An exponential moving average normally requires floating point arithmetic, but due to the lack of native support on 8-bit AVRs, Alan worked out a way to do it with fixed point math.
After some experimentation, he was able to get his version running quite a bit faster than the floating point version, and offers a detailed writeup and tips along the way. Just as we found in our brief testing, the easiest AVR math optimization is to avoid division, since these processors don’t have a native divide instruction. If you’re looking to squeeze every last drop of performance out of your 8-bit chip and can’t (or won’t) upgrade to something more powerful, check this out for some good ideas.
Original source: Hackaday
Everyone seems to have a snazzy weekly feature these days, and we didn’t want to feel left out. Unfortunately, we could only think of a few catchy names for our series, and it’s not Friday today. Oh well. Consider it a preview publication.
Embedded systems often deal with time critical applications that require maximum performance and minimum execution time. Writing efficient code requires solid study of language and platform fundamentals, and there’s no substitute for concentrated practice. However, there are small tips and tricks to squeeze the last drop of performance out of your programs. Faster code Fridays highlights these techniques so you can implement them into your repertoire. We’ll use Arduino-compatible code for most of our examples, though these techniques will work on a number of platforms.
Alright already, we’ll all float on
Does your program seem like it’s trying to do too much at once? Are you using a lot of
while() loops that are holding other things up? If so, your project is a good candidate to use timers. In this tutorial, we’ll discuss AVR and Arduino timers and how to use them to write better code.