You probably have your favorite microcontroller and developing board which you usually take for prototyping. If you need different features, you simply select which suits your needs best. Not life is rally easy as there are many choices if you need something simple, maybe Arduino or MSP430 launchpad can help. If you need more power then any ARM board could fit. Or maybe you need one with Linux, then Raspberry Pi or BeagleBone can help.
There are so many to choose and all of them won’t cost a fortune. For starters in embedded world it may seem pretty tricky to select one. Makezine have written pretty good info on selecting right board. It is good to go through such list for everyone because you never know if you missed something interesting that is there in the market. This variety indicates that not everything spins around Arduino or Raspberry Pi. Other platforms have also something to offer. So don’t be impulsive on selecting next target – choose wisely.
Not many people program microcontrollers in assembly language. Compilers are very good at generating machine code efficiently. In other hand microcontrollers are also fast enough to overcome some some excess code with speed. But if you really want to be good at microcontrollers, you need to understand what is going on inside. Assembly language allows to see how program runs inside MCU instruction by instruction. Sometimes understanding how processor operates in low level it might be easier to adjust your high level program like C to be close to perfection.
To program in assembly might be real pain, but sometimes you may need to write routine o part of the code to get exact timed behavior as you need. For instance very efficient DDS signal generator where every cycle counts. Yasp have built web based assembly language development environment where everyone can write assembly program, debug and even see it running visually on board image. Here you can get generic basics of assembly language without any setup.
When building another digital clock it is always a dilemma how to make it engaging and unique. Alex found interesting way of counting and displaying time. He used LED matrix controlled by Mbed board.
Clock updates and displays time as digits every minute. But after a second or two Game of Life takes over and starts changing LED pixels by following four simple rules:
- Any live cell with fewer than two live neighbours dies, as if caused by under-population.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by overcrowding.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
So every minute you get different starting conditions what makes it behave differently every time. Game updates it status every second. So so get a seconds count as well but there is no way to tell the time until minute is counted up.
Generally speaking – computer is a device that can perform arithmetic and logical operations. In other words there mas be a processor, memory and some input/output. So not only personal computers, tablets and other stuffed devices can be called computers. Any microcontroller like AVR is already a computer in a chip. Anyway for some fun, rovku put together a simple computer out of three chips that make it tick. For a processor he’s chosen Rockvel R6502P which is an 8-bit processor running at 1MHz. As I/O controller there is an Atmega16 used which talks to external CY7C130 dual port 1K RAM and also generates composite video signals.
Computer doesn’t do any special – it outputs OK to screen and blinks a cursor. But this is more than enough to prove the concept and have a warm feeling of seeing it working.