Programming the ATmega16 - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Programming the ATmega16

Description:

Programming the ATmega16 ... Bitwise OR the PORTx register with the corresponding bit mask Ex ... and talk about the operators, such as left shift ( – PowerPoint PPT presentation

Number of Views:1388
Avg rating:3.0/5.0
Slides: 17
Provided by: burford7
Category:

less

Transcript and Presenter's Notes

Title: Programming the ATmega16


1
Programming the ATmega16
  • B. Furman
  • 14SEP2010

2
Mechatronics Concept Map
ME 106 ME 120
Controller(Hardware Software)
ME 106 ME 190 ME 187
ME 106
ME 106 ME 120
ME 106 ME 154 ME 157 ME 195
ME 120 ME 297A
BJ Furman 26JAN06
3
Recap Last Lecture
Audience participation required!
  • Binary and hex numbers
  • Digital pins as inputs or outputs
  • Pins are bidirectional for digital I/O
  • DDRx (xA, B, C, or D) register determines
    direction
  • 8-bit register
  • a 1 means
  • a 0 means
  • main_RC.c
  • Programmers block
  • include
  • Initialization function, init()
  • DDRA, DDRB, and uart_init()

4
Test Your Comprehension
  • Write a statement that will make all pins of
    PORTC to be outputs
  • DDRC
  • DDRC 0b11111111
  • DDRC 255
  • Write a statement that will make pins 5, 3, and 1
    of PORTC to be outputs, and the rest inputs
  • DDRC 0b00101010

0xFF
5
Structure of main()
  • Look again at main_RC.c
  • init()
  • printf_example()
  • Declaration of variables
  • char, string, uint8_t, uint16_t, uint32_t, double
  • printf()
  • format string
  • while(1)
  • Why?
  • PORTB PINA
  • Explain what is going on as a result of this
    statement

6
ATmega16 Port Pin Details
  • See the ATmega 16 data sheet, p. 50 - 67
  • Port pins consist of three register (special
    memory location) bits
  • DDRx
  • Data Direction bit in DDRx register (read/write)
  • PORTxn
  • PORTxn bit in PORTx data register (read/write)
  • PINxn
  • PINxn bit in PINx register (read only)

7
PORT Pin Schematic
8
ATmega16 Internal Architecture
http//www.atmel.com/dyn/resources/prod_documents/
doc2466.pdf
9
ATmega16 Features
http//www.atmel.com/dyn/resources/prod_documents/
doc2467.pdf
10
Bit Manipulations
  • Examples of how to work with Port pins
  • Setting bits
  • Clearing bits
  • Toggling bits

11
Summary of Bit Manipulation
  • Setting a bit (making it a 1)
  • Bitwise OR the PORTx register with the
    corresponding bit mask
  • Ex. PORTB _BV(3)
  • Clearing a bit (making it a 0)
  • Bitwise AND the PORTx register with the
    corresponding complemented bit mask
  • Ex. PORTB ( _BV(3) )
  • Toggling a bit (making it flip)
  • Bitwise XOR the PORTx register with the
    corresponding bit mask
  • Ex. PORTB _BV(3)

12
Pull-up Resistors
  • Pins configured as INPUTS can be pulled up to
    VTG
  • Why is this useful?
  • Puts an input pin in a known state (logic high)
    if no external influence has pulled it down (to
    logic low)
  • Example of a switch connected between a pin and
    ground
  • How is it done?
  • When the pin is configured as an input, SET the
    corresponding bit in PORTxn
  • Undone by clearing the bit

13
Recap ATmega16 Digital I/O
  • Pins are bi-directional. Can configure as
  • Inputs _______ determines the pin voltage
  • Outputs ______ determines the pin voltage
  • Direction determined by bits in DDRx register
  • Where x is A D (and corresponds to all 8 pins
    associated with the port)
  • If configured as output
  • Program can specify a pin to be high (VTG) or low
    (GND) by writing a corresponding 1 or 0
    (respectively) to PORTx register
  • Ex. To make Port C pins 7, 3, and 4 low, and the
    rest high
  • PORTC___________ (write in binary, then in hex)

14
Recap ATmega16 Digital I/O, cont.
  • If pins configured as input, this means
  • External device can pull pin voltage high or low
  • i.e. take up to VTG or take down to GND
  • You can determine the state of the portpins by
    reading the PINx register
  • Grabs all eight logic levels at the same time
  • Ex. PORTA configured as inputs

unsigned char a_pins a_pinsPINA What is the
content of a_pins binary__________ hex_____
15
Recap ATmega16 Digital I/O, cont.
  • If pins configured as input, cont.
  • Can turn pull-up resistors on or off by writing a
    1 or 0 to corresponding pins in PORTx
  • A pull-up resistor internally connects a pin to
    VTG to give it a defined state (logic high, i.e.,
    1)
  • Ex. Write the code that will
  • Make Port A pins inputs
  • Turn on pull-up resistors
  • Read the voltages on the pins and store them in a
    variable, testA
  • What is the value of testA in binary and hex?

16
Reading PORTA Pins Example
unsigned char testA DDRA0 testAPINA What is
the content of testA? binary 11111001 hex F9
Write a Comment
User Comments (0)
About PowerShow.com