Week 5: Microcontroller Programming


Designing in Eagle:



PCB Milling

The faliure in Architecture shop: some lines are not continuous. The machine was stopped coulpe of times without any reasons.



Then, i went to CBA shop and used David's wonderful machine.

Super fast and neat. I made the soldering there with the help of Jie Qi:


Coding from David's programing workshop and Matt's debugging helping section. thanks a lot for those helps.

codes (bascially from David):

// Our LED-Switch program
#include <avr/io.h>
#define F_CPU 1e6
#include <avr/delay.h>

#define TRUE 1
#define FALSE 0

int main()
//Button is on PB2
//LED is PA3

PORTA= _BV(PA3); //Turn button pullup resistor on

DDRB = _BV(PB2); //Enable output on the LED pin

while (TRUE)
if (PINA & _BV(PA3)) //button has not been pushed
//if (bit_is_set(PINB, PA3))
PORTB = 0; //turn LED off
PORTB = _BV(PB2); //turn LED on

finally, it works: