Wasserzähler
05.12.2007, 12:17
Hallo!
Ich habe ein problem mit dem TWI (I2C)-Bus des ATMEGA 8 MC's da ich nicht weiß, wie ich damit einen Real-Time Event Recorder anspreche (DS1678) ich würde gerne die i2c master library von pfleur verwenden, habe sie auch schon so konfiguriert, dass ich den richtigen port anspreche und auch die richtige i2c adresse des Real-Time Event Recorder Bausteines angebe (1001010 + (1...transmitter mode/0...receiver mode)
und jetzt kommt er wenn ich das programm ausführe nicht einmal zu dem
else:
#include <avr/io.h>
#include "i2cmaster.h"
#define Dev1678 0b10010100 // device address of DS1678, see datasheet
int main(void)
{
unsigned char ret;
DDRB = 0xff; // use all pins on port B for output
PORTB = 0xff; // (active low LED's )
i2c_init(); // init I2C interface
/* write 0x75 to eeprom address 0x05 (Byte Write) */
ret = i2c_start(Dev1678); // set device address and write mode
if ( ret ) {
/* failed to issue start condition, possibly no device found */
i2c_stop();
PORTB=0x00; // activate all 8 LED to show error */
}
else {
//hier kommt er nicht mal rein!!! Es leuchten die PORTB led'S
}
for(;;);
}
wisst ihr denn, was ich falsch mache bzw. könnt ihr mir mal erklären, wie die twi/i2c unterprogramme funktionieren?
weil ich es nicht kapiere wie das funktioniert, wenn ich mir die i2cmaster.s oder i2cmaster.h datei ansehe!
mfg: Wasserzähler
Ich habe ein problem mit dem TWI (I2C)-Bus des ATMEGA 8 MC's da ich nicht weiß, wie ich damit einen Real-Time Event Recorder anspreche (DS1678) ich würde gerne die i2c master library von pfleur verwenden, habe sie auch schon so konfiguriert, dass ich den richtigen port anspreche und auch die richtige i2c adresse des Real-Time Event Recorder Bausteines angebe (1001010 + (1...transmitter mode/0...receiver mode)
und jetzt kommt er wenn ich das programm ausführe nicht einmal zu dem
else:
#include <avr/io.h>
#include "i2cmaster.h"
#define Dev1678 0b10010100 // device address of DS1678, see datasheet
int main(void)
{
unsigned char ret;
DDRB = 0xff; // use all pins on port B for output
PORTB = 0xff; // (active low LED's )
i2c_init(); // init I2C interface
/* write 0x75 to eeprom address 0x05 (Byte Write) */
ret = i2c_start(Dev1678); // set device address and write mode
if ( ret ) {
/* failed to issue start condition, possibly no device found */
i2c_stop();
PORTB=0x00; // activate all 8 LED to show error */
}
else {
//hier kommt er nicht mal rein!!! Es leuchten die PORTB led'S
}
for(;;);
}
wisst ihr denn, was ich falsch mache bzw. könnt ihr mir mal erklären, wie die twi/i2c unterprogramme funktionieren?
weil ich es nicht kapiere wie das funktioniert, wenn ich mir die i2cmaster.s oder i2cmaster.h datei ansehe!
mfg: Wasserzähler