Introduction to MSP430 Interrupts

In this tutorial, we will see a practical way of coding interrupts. Our task for today will be to learn interrupts for GPIO and Timers. In the initial part, we will first look at coding interrupts for the GPIO pins, and in the other half, we will modify this code to add interrupts for timers. By the end of the tutorial, you will have a code that will blink a led using a timer interrupt. However, the blinking frequency will vary if you push a button. In the last tutorial on timers, we saw that we were continuously monitoring the timer flag to check when the timer has overflown. This process is called polling. The only problem with this method is it keeps the processor busy. What if we had another way by which the timer would itself tell the CPU that the timer had overflown? This is where interrupts come into the picture. For example, imagine a scenario where you would always go up to the door to see someone s there or not. This process can be called… Continue reading

Basic understanding of microcontroller interrupts

Earlier I’ve made a mistake by referring this tutorial to first AVR family microcontrollers like Atmega8/16/32/64/128. But AVR is being continuously changed with various new tweaks and updates like enhanced pin control or different register names. Since now tutorial will be based on Atmega328 microcontroller which is popular in Arduino boards. So you’ll be able to test all code examples on Arduino as it can serve as general purpose AVR test board with no problem. Understanding Interrupts Probably you won’t be able to find a microcontroller without interrupt capability. These are essential attributes of any modern microcontroller or processor. They may seem confusing and tricky at first glance, but during the time you will find out that normal MCU operation is impossible without interrupts. Interrupts can be compared to real life events. Look around – all your activities are full of them. For instance, you are reading this tutorial and find it interesting, so you are all in it. But suddenly your cell phone rings. What do you do? You remember the last stroke you’ve read and answered the phone.… Continue reading

How to Interface a Microcontroller with a PS/2 Keyboard

In most of the case, it’s highly important when you’re moving from basic microcontroller programming to advanced microcontroller programming, especially if you wants to interrupt the code. Technically, interrupts are pieces of code that much likes functions. The interrupts are executed automatically when outside events occur. People always used the interrupts to react to all sorts of outside inputs; including pin changes that driven by outside devices. By using the interrupts, it enables the users to give the code an ability to react to events as they happen. In this case, we don’t have to wait for the code to get to a place where it can handle an event. For your information, the project uses interrupts to interface a PS/2 keyboard with the USB NerdKit. To be honest, the simplicity of the protocol and the asynchronous nature of the clock generated by the keyboard make it a great start, especially for the amateur to get familiar with interrupts and interrupt handlers. The PS/2 keyboard is quite cheap and very easy to obtain, at the garage sales, online auction or… Continue reading