Hetpro USBasp V3.0 Guía De Usuario página 42

Tabla de contenido

Publicidad

Guía de Usuario USBasp V3.0| HeTPro
unsigned char ReceiveByte( void ){
while ( !(UCSRA & (1<<RXC)) );
return UDR;
}
Esta función ya no es void, esta es de tipo carácter sin signo, pero en este caso no
tiene entrada, por lo tanto en los paréntesis se escribe el void (vacio).
Al llamar a esta función esta entra y ejecuta el while, este espera hasta que reciba
algún valor y como no tiene corchetes se queda solamente esperando el valor.
Cuando haya salido del while nos indica que llego un valor y este se encuentra en
el UDR, por lo tanto lo regresamos con el comando return UDR, esto quiere decir
que la función (que no fue void) regresa el valor UDR.
void TransmitByte( unsigned char data ){
while ( !( UCSRA & (1<<UDRE)) );
UDR = data;
}
La función transmitir, es de tipo void por lo tanto no regresa nada, pero si tiene
una entrada tipo char con la variable data, al llamar esta función con algún valor
en data, esta entra al while y espera hasta que se pueda transmitir, ya que salga
del while, toma el valor de data y lo pone en el UDR.
int main (void)
{
DDRC=0xFF;
InitUART( 51 );
El programa necesita conocer las funciones recién creadas, por eso se ponen al
principio pero recordemos que el programa siempre inicia en el main. Como en
este caso inicia aquí. Se declara el Puerto C como salidas, y se manda a llamar a la
función initUART que se acaba de explicar, en esta se le ingresa el numero 51 pero
dependiendo de su configuración es el numero que se deba poner (Revisar el
UBRRL
en la hoja de datos, hay una tabla con los valores, o también lo pueden
calcular).
while(1){
dato=ReceiveByte();
TransmitByte(dato);
}
}
41

Publicidad

Tabla de contenido
loading

Tabla de contenido