Liste der Anhänge anzeigen (Anzahl: 1)
LM75 Probleme
Anhang 21353Hallo Freunde ich bräuchte Eure Hilfe
Habe vor mir einen LM 75 und ein Atmega16.
Verbunden über I2C mit 4,7 Pullups an den leitungen.
Ich Versuche wie verzweifelt die Temperatur auszulesen und auf einem LCD wieder zu geben,
doch will dies mir nicht gelingen.
Ich poste mal meinen Code zur Kontrolle von Profis
Code:
/*
* LM75.c
*
* Created: 28.01.2012 17:11:50
* Author: Frau
*/
#include <avr/io.h>
#include <stdio.h>
#include <stdint.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "lcd.c"
#include "lcd.h"
#include "i2cmaster.h"
#include "twimaster.c"
#define lm75 0x90
uint8_t msb_temp;
uint8_t lsb_temp;
uint16_t temp_wrd;
uint8_t ret;
char Buffer[20];
int main(void)
{
lcd_init(LCD_DISP_ON);
lcd_clrscr();
i2c_init();
void temperfassung(void)
{
ret = i2c_start(lm75 + I2C_WRITE);
if (ret == 0)
{
msb_temp = i2c_readAck();
lsb_temp = i2c_readNak();
}
i2c_stop();
}
while(1)
{
temperfassung();
temp_wrd = (msb_temp << 8 | lsb_temp);
itoa(ret ,Buffer, 10 );
lcd_clrscr();
lcd_gotoxy(0,0);
lcd_puts( "Temperatur:");
lcd_gotoxy(0,1);
lcd_puts(Buffer);
_delay_ms(500);
}
}
Ich habe den I2C-Bus überwacht und hänge noch ein Pic mit daran. Vielleicht gibt das aufschluss über den Bock den ich drin habe.
Grüße Flo
Liste der Anhänge anzeigen (Anzahl: 1)
So ich bin nun fertig für Heute, hab die Schnautze voll.
Bekomme keine Antwort (ACK low) von dem Ic!
Danke für deinen Link Oberallgeier werd ich Morgen mal rein schauen und damit weiter pobieren.
Würde mich aber intressiern ob mein Prgramm den LM75 ausliest, könnte dann zumindest den Softwareteil ausblenden und die Hardware zum 1000 mal durchmessen.
Im Anhang noch ein Screenshot meines Osis. Mehr konnte ich ihm heut nicht entlocken.:(
Danke für die Hilfe erstmal...:p
Anhang 21356
Grüße Flo