Hallo

heute etwas Quelltext zum gestrigen Beitrag

Messung funktioniert, nur abgefragt bekomme ich es nicht

Code:
#include "system.h"
#include "PIC16F877A.h"

#pragma CLOCK_FREQ 20000000

#pragma DATA 0x2007, _HS_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _DEBUG_ON & _CP_OFF

char	RxHiData;
char	RxLoData;

void Bus_reservieren();
void Bus_freigeben();

void main()
{
	set_bit (trisc,3);		// RC3 als Eingang
	set_bit (trisc,4);		// RC4 als Eingang
	sspadd = 12;
	sspcon = 8;			// Master Mode
	set_bit (sspcon, 5);		// IIC einschalten

	while (1)
	{

		Bus_reservieren();
	
		sspbuf = 0xE4;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Adresse gesendet
	
		sspbuf = 0x0;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Register gesendet
	
		sspbuf = 0x51;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Befehl gesendet
	
		Bus_freigeben();	
	
		delay_ms(65);					// warten

		Bus_reservieren();

		sspbuf = 0xE0;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Adresse gesendet

		sspbuf = 0x02;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Register gesendet
	
		Bus_freigeben();

		// bis hier scheint er fehlerfrei zu laufen	
			
		Bus_reservieren();

		sspbuf = 0xE1;
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);			// Adresse gesendet

		set_bit (sspcon2 ,3);
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);
		RxHiData = sspbuf;				// Byte gelesen

		set_bit (sspcon2, 4);			// Ack senden
	
		set_bit (sspcon2 ,3);
		while (!(test_bit( pir1, 3)));
		clear_bit (pir1, 3);
		RxLoData = sspbuf;				// Byte gelesen
	
		Bus_freigeben();	
	}

}

void Bus_reservieren()
{
	clear_bit (pir1, 3);
	set_bit (sspcon2, 0);
	while (!(test_bit( pir1, 3)));
	clear_bit (pir1, 3);			// Bus übernommen
}
void Bus_freigeben()
{
	set_bit (sspcon2, 0);
	while (!(test_bit( pir1, 3)));
	clear_bit (pir1, 3);			// Bus freigegeben
}
Währe schön wenn mal ein Kenner drüberguckt.