コード例 #1
0
ファイル: ex1.c プロジェクト: tiagogala/Projects
int main(void) {
	int delay;
	int ack, temperature;
	i2c1_init(TC74_CLK_FREQ);

	while(1) {
		//start event
		i2c1_start();
		//send write addr
		ack = i2c1_send(ADDR_WR);
		//command (read temp)
		i2c1_send(RTR);
		
		//start event
		i2c1_start();

		//send read addr
		ack += i2c1_send(ADDR_RD);
		//printInt10(ack);

		if (ack != 0) {
			i2c1_stop();
			printStr("An error has ocurred, exiting.\n");
		} else {
			printStr("\nReading temperature: ");
			temperature = i2c1_receive(I2C_NACK);
			i2c1_stop();
			printInt10(temperature);
		}
		
		//delay 250ms
		delay = readCoreTimer();
		while (readCoreTimer() - delay < 5000000);

	}

	return 0;
}
コード例 #2
0
ファイル: prog.c プロジェクト: rafaelferreirapt/ac2
int getTemperature(int *temperature){
	int ack;

	i2c1_init(TC74_CLK_FREQ);

	// Send Start event
	i2c1_start();

	// Send Address + WR (ADDR_WR) and copy return value to "ack" variable ...(see exercise 7, function main())...
	ack = i2c1_send(ADDR_WR);

	ack += i2c1_send(RTR);

	i2c1_start();

	ack += i2c1_send(ADDR_RD);

	*temperature = i2c1_receive(I2C_NACK);

	// Send Stop event
	i2c1_stop();

	return ack;
}