USARTAVRComu muni caci ónser i al
Compartir:
6
3
1
0
USART AVR, viene de receptor transmisor síncrono asíncrono universal, es una forma de comunicación entre dispositivos dispositivos que tengan esta capacidad, donde los datos pueden ser enviados en grupos de 5, 6, 7, o de ! "its pero "it por "it, esto es en serie, por eso se dice que esta es una comunicación serial, en esta sección se comentar# so"re la comunicación serial asíncrona utili$ando el módulo USART del microcontrolador AVR, con el módul módulo o USART USART AV AVR R el micro microcon contro trolad lador or puede puede comuni comunicar carse se e interc intercam" am"iar iar datos datos con el orden ordenado adorr, con otros otros microcontroladores, microcontroladores, etc% &ara la comunicación serial asíncrona entre microcontroladores ' para la comunicación entre el microcontrolador ' el ordenador, se necesitan ( )ilos de conducción para la transmisión ' recepción de datos, ' un )ilo de conducción para la
cone*ión de los comunes o +- que tienen que ser los mismos, para la comunicación serial entre el microcontrolador microcontrolador ' el ordenador se seguir# la norma RS232 RS232%% En la comunicación USART AVR asíncrona, asíncrona , uno de los )ilos ser# para la transmisión de los datos de un dispositivo a otro ' el otro )ilo ser# para la recepción de datos entre un dispositivo a otro, la transmisión ' la recepción pueden ocurrir en forma simultanea, lo que si se tiene que cumplir es que la frecuencia de tra"a.o de am"os dispositivos dispositivos tiene que ser la misma, a esto se le conoce como los baudios que baudios que viene a ser la cantidad de "its por segundo que se transmitir#n entre am"os dispositivos%
/l micro crocon control trolad ador or AVR uti utili$ li$ado ado com como referencia ser# el ATmega88 ATmega88,, los pines de este microcontrolador microcontrolador que tra"a.an con el módulo USART AVR son el pin R! o pin receptor ' receptor ' el pin T! o pin transmisor, transmisor, los que en la imagen est#n resaltados resaltados% /l pin R0- es el pin para la recepción de datos%
/l pin T0- es el pin para la transmisión de datos% /l pin R0- del AVR tiene que ser conectado al pin T0 o T0- del otro dispositivo% /l pin T0- del AVR tiene que ser conectado al pin R0 o R0- del otro dispositivo 1os comunes +- de am"os dispositivos tam"i2n tienen que estar conectados entres si% 1os niveles de tensión con los que tra"a.an los pines del módulo USART AVR son de 3V ' 5V un "a.o ser# 3V mientras que un alto ser# 5V, por eso cuando la comunicación es entre microcontroladores la cone*ión entre pines se puede )acer directamente, pero cuando la comunicación es entre el microcontrolador ' un ordenador la cone*ión entre pines tiene que )acerse a trav2s de un conversor de nivel como el "A232, 'a que los niveles de tensión para la comunicación serial del ordenador son ma'ores que para el AVR típicamente entre 4(V ' (V, adem#s de tra"a.ar con lógica negativa, esto es para el ordenador un "a.o ser# (V mientras un alto ser# 4(V%
a' otra manera de conectar el AVR con el ordenador para la comunicación serial mediante resistencias ' la compuerta inversora tipo Sc)mitt #$%C&$ como se ve en la siguiente imagen%
/l socet donde se conectar# el AVR con el ordenador para la comunicación serial es del tipo -8! ' se conoce como puerto serie, pero resulta que este tipo de puerto 'a no viene en los ordenadores port#tiles que son los que )o' en día la ma'oría utili$a, lo que traen a)ora son puertos US8, por lo que para reali$ar la comunicación serial con el módulo USART AVR ser# necesario la utili$ación de un conversor S/R9/4US8 como el que se muestra en la siguiente imagen%
/l conector -8! es el que se utili$a para la comunicación serial con el módulo USART AVR, este conector consta de de ! pines, los )a' )em"ra ' mac)o, de este conector solo se utili$ar#n : pines, uno para el pin R0, otro para el pin T0 ' el otro para el tierra, estos pines tiene una numeración que )a' que respetar%
/l conversor serie4US8 viene con el conector -8! mac)o, si el ca"le que trae es corto se tendr# que conseguir un ca"le serie -8! del que la )em"ra se conectar# al conector -8! mac)o del conversor serie4US8 ' el -8! mac)o del ca"le serie -8! al microcontrolador AVR 'a sea a trav2s del ;A0(:( o con el uso de la compuerta inversora como se c omento lineas arri"a, por lo que los pines a conectar del -8! mac)o con el módulo USART AVR son en el siguiente orden< •
/l pin ( que es pin receptor R0 del conector -8! mac)o que viene del ordenador, se conectar# a trav2s del ;A0(:( o con el uso de la compuerta inversora ' la resistencia de = al pin transmisor o pin T0- del microcontrolador AVR%
•
/l pin : que es pin transmisor T0 del conector -8! mac)o que viene del ordenador, se conectar# a trav2s del ;A0(:( o con el uso de la compuerta inversora ' la resistencia de ((= al pin receptor o pin R0- del microcontrolador AVR%
•
/l pin 5 que es pin +- o tierra o com>n del conector -8! mac)o que viene del ordenador, se conectar# al pin +- del microcontrolador AVR%
1as cone*iones del módulo USART AVR con el ordenador a trav2s de la compuerta inversora ' las resistencias, con el uso del conversor serie4US8 ser# como se indica en la siguiente imagen%
USARTAVRPROGRAMACI ÓN &ara programar el módulo USART AVR se recomienda muc)o leer la )o.a de datos del AVR utili$ado, como referencia se ver# para el ATmega88, del que se utili$an los siguientes registros, se ver# que estos tienen una n, esto es porque algunos otros microcontroladores AVR tienen mas de un módulo USART, el ATmega sólo tiene uno ' en este caso n ser# 3 n'(, ' ser# lo que se utilice en la descripción de los registros, los registros son< el registro U!Rn, el registro UCSRnA, el registro UCSRn), el registro UCSRnC, los registros U)RRn* ' U)RRn%, se pueden producir interrupciones USART AVR % El registro U!R( en este registro se pondr# el caracter que se quiera transmitir, ' tam"i2n se encontrar# el caracter reci"ido, tiene esta do"le función, n es reempla$ado por 3%
El registro UCSR(A Registro de control ' estado A del módulo USART AVR, n es reempla$ado por 3%
El bit# RC( /ste "it se pone a autom#ticamente cuando se )a completado la recepción de alg>n dato en el registro U-R3, se pondr# a 3 autom#ticamente cuando se )a'a leído el dato, si se a )a"ilitado el uso de la interrupción por recepción del módulo USART AVR, este "it se utili$a para detectar la interrupción% El bit+ TC( /ste "it se pone a autom#ticamente cuando se )a completado la transmisión de alg>n dato que se encontra"a en el registro U-R3, se pondr# a 3 autom#ticamente cuando se cargue otro dato en el registro U-R3 a ser transmitido, si se a )a"ilitado el uso de la interrupción por transmisión del módulo USART AVR, este "it se utili$a para detectar la interrupción% El bit, U!RE( /ste "it al ponerse a en forma autom#tica indica que el registro U-R3 est# vacío por lo que se le podr# cargar con alg>n dato% ?uando se cargue con alg>n valor el registro U-R3 este "it se pondr# autom#ticamente a 3% Se puede )a"ilitar la interrupción por detección de que el registro U-?R3 est# vacío ' este "it ser# el que indique esa interrupción% El bit$ -E( /ste "it se pondr# a autom#ticamente cuando )a' un error en la recepción de alg>n dato, el error se detecta cuando el "it de parada del dato es un 3, el que normalmente de"e de ser un % Se recomienda siempre poner este "it a 3 antes de reci"ir alg>n dato%
El bit3 !.R( /ste "it se pondr# a autom#ticamente cuando se so"reescri"e alg>n dato del registro U-R3 que no )a'a sido leído, se pondr# a 3 autom#ticamente cuando se lea el dato, se recomiendo poner este "it a 3 antes de reci"ir alg>n dato% El bit2 U/E( /ste "it se pondr# a autom#ticamente cuando se produce un error de paridad en la recepción de alg>n dato, se pondr# a 3 autom#ticamente cuando se lea el dato, se recomiendo poner este "it a 3 antes de reci"ir alg>n dato% El bit& U2( /ste "it interviene en la velocidad de los datos, esto es en los "audio que es la cantidad de "its por segundo en la comunicación serial, si es puesto a 3 se dice que la velocidad ser# normal ' si es puesto a se dice que ser# a do"le velocidad% El bit( "/C"( /ste "it es utili$ado en el modo síncrono ' es para detectar cual de los microcontroladores esclavo a sido elegido% en modo asíncrono se pondr# a 3% El registro UCSR() Registro de control ' estado 8 del módulo USART AVR, n es reempla$ado por 3%
El bit# RC0E( Al poner este "it a se )a"ilita el uso de la interrupción USART AVR por recepción% El bit+ TC0E( Al poner este "it a se )a"ilita el uso de la interrupción USART AVR por transmisión% El bit, U!R0E( Al poner este "it a se )a"ilita el uso de la interrupción USART AVR la detección de que el registro U-R3 se quedó vacío% El bit$ RE1( Al poner este "it a se )a"ilita el uso del pin R0- para la recepción del módulo USART AVR% Se )a"ilita es uso de la recepción% El bit3 TE1( Al poner este "it a se )a"ilita el uso del pin T0- para la transmisión del módulo USART AVR% Se )a"ilita es uso de la transmisión%
El bit2 UCS(2 /ste "it .unto con los "its ( ' del registro UCSR(C son para elegir de cuantos "its ser#n los datos a reci"ir o transmitir en la comunicación serial% El bit& R)8( Si se elige la comunicación serial a ! "its, este ser# el noveno "it en la recepción del dato% El bit( T)8( Si se elige la comunicación serial a ! "its, este ser# el noveno "it en la transmisión del dato% El registro UCSR(C Registro de control ' estado ? del módulo USART AVR, n es reempla$ado por 3%
El bit# U"SE*(& el bit+ U"SE*(( son para elegir el modo de tra"a.o del módulo USART AVR, seg>n la siguiente ta"la%
Se ver# el modo asíncrono por lo que las com"inaciones de estos "its ser#n 33%
El bit, U/"(& el bit$ U/"(( son para elegir si se utili$ar# o no alg>n "it de paridad para la detección de errores seg>n la siguiente ta"la<
/n los e.emplos a reali$ar no se utili$ar# el "it de paridad por lo que la com"inación de estos "its ser# 33% El bit3 US)S( /ste "it selecciona el n>mero de "its de parada que se inserta por el transmisor% /l receptor ignora este a.uste, seg>n la siguiente ta"la<
El bit2 UCS(& el bit& UCS(( .unto con el bit2 UCS(2 del registro UCSR() son para elegir de cuantos "its ser#n los datos a reci"ir o transmitir en la comunicación serial, seg>n la siguiente ta"la<
El bit( UC/.*( /ste "it es utili$ado en el "it síncrono, en el modo asíncrono se pondr# a 3% *os registros U)RR(* U)RR(% @untos estos registros )acen un solo registro de 6 "its el U)RR(, es donde se de"e cargar el valor con el que se elige la velocidad de transmisión de los datos, esto es los "audios o la cantidad de "its por segundo que se enviar#n en la comunicación serial con el módulo USART AVR, tra"a.a .unto con el "it U2( del registro UCSR(A% /l valor a cargar en el registro U8RR se calcula con las siguientes fórmulas que depender#n de la velocidad elegida con el "it U2(, de la frecuencia del oscilador utili$ado ' de si la comunicación ser# síncrona o asíncrona%
1os e.emplos que se )ar#n ser#n para la transmisión asíncrona en el modo normal por lo que la fórmula que se utili$ar# ser#< Velocidad en baudios'-osc45&+65U)RR(7& /s importante recordar que la velocidad en "audios de los dispositivos que se est2n comunicando tienen que ser iguales, la mas com>n es la de !633 "audios, si en la fórmula anterior se reempla$a ' se despe.a se tendr#< U8RR3BCoscDB6E!633FF4 de donde< U)RR('5-osc4&,3+((9& &or e.emplo si el oscilador es de ;$ se tendr# U8RR3B333333D5:633F45 &or lo que para o"tener un una velocidad de !633 "audios se tendr# que cargar el registro U8RR3 con 5% a' un cuadro en la )o.a de datos donde se tienen algunos valores a cargar en este registro para el modo síncrono ' asíncrono dependiendo de la frecuencia del oscilador utili$ado ' de la velocidad elegida%
USARTAVRPROGRAMACI ÓNenelATMELSTUDI O &ara la programación del módulo USART AVR en el AT;/1 STU-9G, en este caso se comentar# como se puede proceder para utili$ar el módulo USART AVR en modo asíncrono del ATmega88, lo aquí comentado es mu' similar para otros microcontroladores AVR% /ara iniciar el módulo USART AVR 1os pines del ATmega88 para el mane.o del módulo USART AVR son el pin &-3 para la recepción de datos por lo que en este caso se le llama pin R0-, ' el pin &- para la transmisión de datos, en este caso se le llama pin T0-% Con;iguración del registro UCSR(A Todos los "its de este registro se pondr#n a 3 'a que a e*cepción del "it bit& U2( ' el "it3 todos los dem#s "its tra"a.an en forma autom#tica, el "it se pone a 3 porque se tra"a.ar# en la velocidad de los "audios en forma normal, ' el "it 3 se pone a 3 porque se usar# el modo asíncrono% 1uego en la iniciali$ación del módulo USART AVR el registro U?SR3A en el AT;/1 STU-9G quedar# así< UCSR(A'(b((((((((< DD velocidad normal Con;iguración del registro UCSR() no se utili$ar#n interrupciones, se )a"ilitar#n los pines R0- ' T0- para la comunicación serial ' la comunicación ser# a "its /l "it7 se pondr# a 3 porque no usar# la interrupción USART AVR por recepción% /l "it6 se pondr# a 3 porque no usar# la interrupción USART AVR por transmisión% /l "it5 se pondr# a 3 porque no usar# la interrupción USART AVR la detección de que el registro U-R3 se quedó vacío% /l "itH se pondr# este "it a para )a"ilitar el uso del pin R0- en la recepción del módulo USART AVR% Se )a"ilita es uso de la recepción% /l "it: se pondr# este "it a para )a"ilitar el uso del pin T0- para la transmisión del módulo USART AVR% Se )a"ilita es uso de la transmisión% /l "it( /ste "it .unto con los "its ( ' del registro U?SR3? son para elegir de cuantos "its ser#n los datos a reci"ir o transmitir en la comunicación serial, se utili$ar# la comunicación serial a "its, por lo que este "it se pondr# a 3%
/l "it se pone a 3 'a que este "it ser# el noveno "it en la recepción del dato, si la comunicación es a ! "its% /l "it3 se pone a 3 'a que este "it ser# el noveno "it en la transmisión del dato, si la comunicación es a ! "its% 1uego en la iniciali$ación del módulo USART AVR el registro U?SR38 en el AT;/1 STU-9G quedar# así< UCSR()'(b(((&&(((< DDtransmisión ' recepción )a"ilitados a "its Con;iguración del registro UCSR(C se elegir# el modo asíncrono, sin "it de paridad, un "it de parada 1os "its 7 ' 6 s e ponen a 3 para elegir el modo asíncrono del módulo USART AVR% 1os "its 5 ' H s e ponen a 3 para no utili$ar "it de paridad% /l "it: se pone a 3 para elegir un solo "it de parada% 1os "its ( ' s e ponen a para elegir que la comunicación serial ser# a "its% /l "it3 /ste "it es utili$ado en el "it síncrono, en el modo asíncrono se pondr# a 3% 1uego en la iniciali$ación del módulo USART AVR el registro U?SR38 en el AT;/1 STU-9G quedar# así< UCSR(C'(b(((((&&(< DDasíncrono, sin "it de paridad, "it de parada a "its Carga del registro U)RR( para los "audios o la cantidad de "its por segundo para la comunicación serial, como ser# a velocidad normal por lo que el "it U2( del registro UCSR(A se puso a 3 ' en forma asíncrona, se utili$ar# la fórmula% Velocidad en baudios'baudios'-osc45&+65U)RR(7& Al despe.ar se tendr# U8RR3BCoscDB6E"audiosFF4 /n los e.emplos que se )ar#n se utili$ar# una Cosc de ;)$ ' la velocidad ser# de !633 "audios, por lo que al reempla$ar se tendr# que el valor a cargar en el registro U8RR3 ser# de 5, luego en el AT;/1 STU-9G ser#< U)RR(',&< DDpara una velocidad de !633 "audios con un oscilador de ;)$ /ntonces se puede iniciar el módulo USART AVR en el AT;/1 ST-9G de la siguiente manera< 1 ////////////////////////////////////////////
2 ////////////////////////////////////////////// 3 //inicialización del módulo USART AVR en el ATME STU!"# modo a$%nc&ono' a 8(i)$' 4 //a 96** (audio$' $in (i) de +a&idad' 1 (i) de +a&ada 5 6
U,SR*A-*(********. // elocidad no&mal
7
U,SR*0-*(***11***. //)&an$mi$ión &ece+ción a(ili)ado$ a 8 (i)$
8
U,SR*,-*(*****11*. //a$%nc&ono' $in (i) de +a&idad' 1 (i) de +a&ada a 8 (i)$
9
U0RR*-51.
//+a&a una elocidad de 96** (audio$ con un o$cilado& de 8Mz
1a iniciali$ación podría )acerse dentro de una función a la que se le puede dar el nom"re que se quiera, en este caso se la llamar# iniciar=usart5, adem#s el registro U?SR3A siempre se inicia a 3 por lo que no es necesario iniciali$arlo en este caso 'a que se necesita que sea 3, lo que en el AT;/1 STU-9G ser# así< 1 ////////////////////////////////////////////// 2 //inicialización del módulo USART AVR modo a$%nc&ono 3 //en una unción' a 8(i)$'a 96** (audio$' $in (i) de +a&idad 4 //1 (i) de +a&ada 5 ///////////////////////////////////////////////////// 6 oid inicia&u$a&) 7 U,SR*0-*(***11***. //)&an$mi$ión &ece+ción a(ili)ado$ a 8 (i)$ 8 U,SR*,-*(*****11*. //a$%nc&ono' $in (i) de +a&idad' 1 (i) de +a&ada a 8 (i)$ 9 U0RR*-51.
//+a&a una elocidad de 96** (audio$ con un o$cilado& de 8Mz
1 *
/ara la recepción de datos con el módulo USART AVR
1os datos que se reci"en son de tipo caracter, cuando se va reci"ir un dato a trav2s del pin R0- se tendr# que esperar a que el "it7 del registro U?SR3A se ponga a , este "it indica que se )a completado la recepción del dato, el dato reci"ido es de tipo caracter c)ar ' estar# en el registro U-R3, cuando se lee el dato guard#ndolo en alguna varia"le de tipo caracter c)ar este "it se pondr# autom#ticamente a 3, la recepción de los datos en el AT;/1 STU-9G se )ar# en una función a la que se le puede llamar como se desee, en este caso se le llamar# recibe=caracter=usart5% 1 2 //////////////////////////////////////////////////////////// 3 /////////////////////////////////////////////// 4 //&ece+ción de da)o$ del módulo USART AVR modo a$%nc&ono 5 //////////////////////////////////////////////////////////// 6 7 un$ined ca& &eci(eca&ac)e&u$a&) 8 iU,SR*A:1;;7 //$i el (i)7 del &ei$)&o U,SR*A $e a +ue$)o a 1 9 &e)u&n U!R*.
//deuele el da)o almacenado en el &ei$)&o U!R*
1 * el$e//$ino 1 &e)u&n *.//&e)o&na * 1 1 2
/ara la transmisión de datos con el módulo USART AVR 1os datos que se transmiten son de tipo caracter, cuando se va transmitir un dato a trav2s del pin T0- se tendr# que esperar a que el registro U-R3 donde se ponen los datos que se van a enviar est2 vacío, esto se )ace esperando a que el "it5 U-R/3 del registro U?SR3A se ponga a , este "it indica que se )a completado la transmisión de un dato, el dato
transmitido es de tipo caracter c)ar, cuando se vuelve a cargar otro dato en el registro U-R3 este "it se pondr# autom#ticamente a 3, la transmisión de los datos en el AT;/1 STU-9G se )ar# en una función a la que se le puede llamar como se desee, en este caso se le llamar# en>ia=caracter=usart5% 1 /////////////////////////////////////////////////////// 2 /////////////////////////////////////////////// 3 //)&an$mi$ión de da)o$ del módulo USART AVR modo a$%nc&ono 4 /////////////////////////////////////////////// 5 6 oid eniaca&ac)e&u$a&)un$ined ca& ca&ac)e& 7
<ile=U,SR*A:1;;5.
8
U!R* - ca&ac)e&.
// mien)&a$ el &ei$)&o U!R* e$)> lleno e$+e&a
//cuando el el &ei$)&o U!R* e$)? acio $e enia el ca&ac)e&
9
/ara la transmisión de cadenas de caracteres con el módulo USART AVR se puede utili$ar la función vista anteriormente para la transmisión de caracteres para enviar cadenas de caracteres, para ello se crear# otra función que se puede llamar como se desee pero en este caso se le llamar# en>ia=cadena=usart5% 1 /////////////////////////////////////////////////////// 2 ////////////////////////////////////////////// 3 //)&an$mi$ión de cadena$ de ca&ac)e&e$ con el módulo USART AVR modo a$%nc&ono 4 /////////////////////////////////////////////// 5 6 oid eniacadenau$a&)ca&@ cadena 7 8
<ile@cadena =-***
//cadena de ca&ac)e&e$ de )i+o ca& //mien)&a$ el Bl)imo alo& de la cadena $ea die&en)e //a el ca&ac)e& nulo
9 1 *
eniaca&ac)e&u$a&)@cadena.
1
cadenaCC.
1 1
//)&an$mi)e lo$ ca&ac)e&e$ de cadena //inc&emen)a la u(icación de lo$ ca&ac)e&e$ en cadena //+a&a enia& el $iuien)e ca&ac)e& de cadena
2 1 3
ARCHI VO DE CABECERA PARA ELUSO DELMÓDULO USARTAVRENELATMELSTUDI O Se puede agrupar todas la funciones vistas anteriormente para el uso del módulo USART AVR en el AT;/1 STU-9G para el AT;/+A con una Cosc;)$, en forma asíncrona, "its, a !633 "audios, sin "it de paridad, "it de parada, en un arc)ivo de ca"ecera al que se le llamar# en este caso usart?, aunque se le puede dar el nom"re que se desee, se )ar# uso de este arc)ivo de ca"ecera en los e.emplos que se reali$ar#n con el AT;/+A, si se utili$a otro AVR u otra velocidad de comunicación es f#cil )acer los cam"ios que se necesiten dentro del arc)ivo usart%), se ver# alg>n e.emplo% 1 /////////////////////////////////////////////////////////////////// 2 //////////////////////////////////////////////////////////////////// 3 //A&cio de ca(ece&a +a&a el u$o del módulo USART AVR con el ATME STU!"#/// 4 /////////////////////////////////////////////////////////////////// 5
6 Dinde USART 7 DdeFne
USART
8 9 oid inicia&u$a&). //unción +a&a inicia& el USART AVR a$%nc&ono' 8 (i)$' 96** (audio$' 1
//$in (i) de +a&idad' 1 (i) de +a&ada
* 1 un$ined ca& &eci(eca&ac)e&u$a&).
//unción +a&a la &ece+ción de ca&ac)e&e$
1 oid eniaca&ac)e&u$a&)un$ined ca&. //unción +a&a la )&an$mi$ión de ca&ac)e&e$ 1 oid eniacadenau$a&)ca&@.
//unción +a&a la )&an$mi$ión de cadena$ de ca&ac)e&e$
2 1 ///////////////////////////////////////////// 3 //inicialización del módulo USART AVR modo a$%nc&ono 1 //en una unción' a 8(i)$'a 96** (audio$' $in (i) de +a&idad 4 //1 (i) de +a&ada 1 ///////////////////////////////////////////////////// 5 oid inicia&u$a&) 1
U,SR*0-*(***11***. //)&an$mi$ión &ece+ción a(ili)ado$ a 8 (i)$
6
U,SR*,-*(*****11*. //a$%nc&ono' $in (i) de +a&idad' 1 (i) de +a&ada a 8 (i)$
1
U0RR*-51.
7 1
//+a&a una elocidad de 96** (audio$ con un o$cilado& de 8Mz
8 /////////////////////////////////////////////////////////// 1 /////////////////////////////////////////////// 9 //&ece+ción de da)o$ del módulo USART AVR modo a$%nc&ono 2 //////////////////////////////////////////////////////////// * 2 un$ined ca& &eci(eca&ac)e&u$a&) 1
iU,SR*A:1;;7 //$i el (i)7 del &ei$)&o U,SR*A $e a +ue$)o a 1
2
&e)u&n U!R*.
2
2
el$e//$ino
3
&e)u&n *.//&e)o&na *
//deuele el da)o almacenado en el &ei$)&o U!R*
2 4 2 ////////////////////////////////////////////////////// 5 /////////////////////////////////////////////// 2 //)&an$mi$ión de da)o$ del módulo USART AVR modo a$%nc&ono 6 /////////////////////////////////////////////// 2 7 oid eniaca&ac)e&u$a&)un$ined ca& ca&ac)e& 2
<ile=U,SR*A:1;;5.
8
U!R* - ca&ac)e&.
// mien)&a$ el &ei$)&o U!R* e$)> lleno e$+e&a
//cuando el el &ei$)&o U!R* e$)? acio $e enia el ca&ac)e&
2 9 3 ////////////////////////////////////////////////////// * ////////////////////////////////////////////// 3 //)&an$mi$ión de cadena$ de ca&ac)e&e$ con el módulo USART AVR modo a$%nc&ono 1 /////////////////////////////////////////////// 3 2 oid eniacadenau$a&)ca&@ cadena 3
//cadena de ca&ac)e&e$ de )i+o ca&
<ile@cadena =-***
//mien)&a$ el Bl)imo alo& de la cadena $ea die&en)e
3
//a el ca&ac)e& nulo
3
eniaca&ac)e&u$a&)@cadena.
4
cadenaCC.
3
//+a&a enia& el $iuien)e ca&ac)e& de cadena
5
3 6 3 Dendi /@ USART @/ 7 3 8 3
//)&an$mi)e lo$ ca&ac)e&e$ de cadena //inc&emen)a la u(icación de lo$ ca&ac)e&e$ en cadena
9 4 * 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9
5 * 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6
* 6 1 6 2 6 3 6 4
USART AVRPROGRAMACI ÓN Ej empl os en elATMEL STUDI O