HomeFinal ProjectWeek 1Week 2Week 3Week 4Week 5Week 6Week 7Week 8Week 9Week 10Week 11Week 12Week 13




M.S. Suryateja Jammalamadaka


I am a Graduate Research Assistant in Community Biotechnology Initiative and Molecular Machines group at MIT Media Lab

Week 6: Embedded Programming


This week, I had to program the Hello world board I made in Week4. Thanks to Erik, Ravi for their valuable inputs explaining me the basics of embedded programming. I read AVR Tutorials on how to configure pins as inputs/outputs and activating them. Here is the code I used to program my board with my USP tiny I made in Week2. It is supposed to turn off the LED when the button is pressed.


Here are the programming steps:




There was an error asking to double check the connections with rc=-1 error. I know for sure that the problem is not with the soldering or board as I could program the board with Hello world code in week4. I figured out that it's because I used a non-ADC pin(PA7) for the input device (switch). So it wasn't able to take the analog signal. I made a new board, this time I used PA7 for input device (switch) and PB2 for LED.


Board:


Traces and Outline:



Board after milling using Rolad Modela MDX-20:


Board after soldering components:


Changes in the program:


Programming new board with USP tiny:





It works well this time.


I wanted the LED to blink with increasing intensity. At first I modified the code taking Neil's input devices' code as reference. I got an error message saying that PWM_delay function didn't exist. Then I realized I didn't include the util/delay.h library. Here is the code that makes LED blink with increasing intensity.