avr programming: digital i/o september 10, 2010

Post on 22-Feb-2016

34 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

AVR Programming: Digital I/O September 10, 2010. What is Digital I/O?. Digital – A 1 or 0 Input – Data (a voltage) that the microcontroller is reading from an external source Output – Data (a voltage) that the microcontroller is setting to be used by an external source. - PowerPoint PPT Presentation

TRANSCRIPT

AVR Programming:

Digital I/OSeptember 10, 2010

What is Digital I/O?

Digital – A 1 or 0 Input – Data (a voltage) that

the microcontroller is reading from an external source

Output – Data (a voltage) that the microcontroller is setting to be used by an external source

2

Where does this happen?

I/O Ports 6 8-bit I/O ports

(A-F) 1 4-bit I/O port (G) Most have an

alternate purpose

3

How do I access these pieces of metal in software?

They are memory mapped Certain memory addresses are reserved for I/O

Registers A few examples (Ports A-D):

4

55

Do I need to memorize those addresses? No! #include <avr/io.h> Each register and bit within it is defined for you

6

How does this look in code?

//set the bottom three bits of Port A to outputDDRA |= _BV(DDA0) | _BV(DDA1) | _BV(DDA2);

//output high on pins 0 and 2 of port APORTA |= _BV(PA0) | _BV(PA2);

//output low on pin 1 of port APORTA &= ~(_BV(PA1));

//set Port B to input DDRB = 0x00;

//read Port Bchar x = PINB;

7

What can we do with this on the robots?

Note: Pin 33 and 34 are PG0 and PG1

8

Stuff to try out

Reading from the push buttons – make sure to enable internal pull up (PORTG |= 3;)

Turning on the orbs Rapidly turning the orbs on and off

– Maybe even in patterns (off off on off off on…) Rapidly switching orb colors

– e.g. (blue green off blue green off…) Combinations of above You should not need the dragonfly library

9

Help/More Info

Datasheet:http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf

top related