Download presentation
Presentation is loading. Please wait.
Published byGerard Kelly Modified over 9 years ago
1
AVR Programming: Digital I/O September 10, 2010
2
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
3
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
4
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
5
55 Do I need to memorize those addresses? No! #include Each register and bit within it is defined for you
6
6 How does this look in code? //set the bottom three bits of Port A to output DDRA |= _BV(DDA0) | _BV(DDA1) | _BV(DDA2); //output high on pins 0 and 2 of port A PORTA |= _BV(PA0) | _BV(PA2); //output low on pin 1 of port A PORTA &= ~(_BV(PA1)); //set Port B to input DDRB = 0x00; //read Port B char x = PINB;
7
7 What can we do with this on the robots? Note: Pin 33 and 34 are PG0 and PG1
8
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
9 Help/More Info Datasheet: http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.