i2c Avr Ejemplos - Microcontroladores

Inicio » I2C AVR Ejemplos I2C AVR Ejemplos Compartir: 0 0 0 0 0 Anterior: I2C AVR Comunicación Serial. I2C AVR e

Views 168 Downloads 80 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Inicio » I2C AVR Ejemplos

I2C AVR Ejemplos Compartir:

0

0

0

0

0

Anterior: I2C AVR Comunicación Serial.

I2C AVR ejemplos, en esta sección se realizarán algunos ejemplos realizados con el ATMEL STUDIO sobre la utilización del módulo TWI para la comunicación serial I2C AVR, esta es la parte práctica de lo que se vio aquí, por lo que se recomienda antes de continuar visitar el enlace indicado. Se utilizará el archivo de cabecera i2c.h que se obtuvo para la transmisión y recepción de datos con el I2C AVR, el microcontrolador AVR para realizar el I2C AVR ejemplos será el ATMEGA88 en un inicio, luego se complementará con otros AVRS. El archivo de cabecera i2c.h que se obtuvo para ser utilizado con el ATMEGA88 en el que la Fosc=8Mhz, la velocidad de comunicación de 400Khz con un prescaler de 1 es el siguiente, con algunas pequeñas modificaciones se puede utilizar en cualquier otro ATMEGAxxx, si se utiliza otra Fosc y/o otra velocidad de comunicación hay que hacer los cálculos con TWBR=((Fosc/Velocidad)-16)/(2*prescaler) para el nuevo valor a cargar en TWBR. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //Archivo de cabecera para el uso del módulo TWI I2C AVR con el ATMEL STUIDO/// //para el ATMEGA88 como maestro, la comunicación será a 400Khz///// //la frecuencia de trabajo del ATMEGA88 es de 8Mhz, el archivo ///// //puede ser utilizado en otros AVR fácilmente realizandole pequeños/// //cambios como los pines SCL y SDA, la Fosc, siempre revisar la hoja// //de datos del AVR utilizado para comprobar los registros///////////// /////////////////////////////////////////////////////////////////////// #ifndef I2C_H_ #define I2C_H_ void i2c_iniciar(); void i2c_espera(); void i2c_inicia_com();

//función para iniciar el módulo TWI I2C AVR //función de espera //función que inicia la comunicación I2C AVR

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

void i2c_detener(); //función que detiene la comunicación I2C AVR void i2c_envia_dato(unsigned char ); //función para enviar o escribir //datos en el esclavo unsigned char i2c_recibe_dato_ack(); //función para recibir o leer datos del esclavo //enviando el bit ACK si se quiere leer mas datos //después del último leído unsigned char i2c_recibe_dato_nack(); //función para recibir o leer datos del esclavo //sin enviar el bit ACK si no se quiere leer mas datos //después del último leido uint8_t i2c_estado_com(); //función para averiguar el estado de la comunicación I2C AVR //útil para detectar errores /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //inicialización del módulo TWI I2C AVR en el ATMEL STUDIO en una función//// //para el ATMEGA88 como maestro //a 400KHz con un oscilador de 8Mhz void i2c_iniciar(){ PORTC|=((1