From 28f0617e489d6c930d1290823b0e185a9d295ad9 Mon Sep 17 00:00:00 2001 From: hugo LAMY Date: Sun, 16 Mar 2025 10:43:33 +0100 Subject: [PATCH] m06e00 ok --- README.md | 2 +- module06/ex00/i2c.c | 3 +-- module06/ex00/main.c | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ecc9b6a..10963ac 100644 --- a/README.md +++ b/README.md @@ -90,5 +90,5 @@ avrdude done. Thank you. ## screen -- (optional) `export XTERM=xterm` +- (optional) `export TERM=xterm` - `screen /dev/ttyUSB0 115200` diff --git a/module06/ex00/i2c.c b/module06/ex00/i2c.c index 69d5a4e..2214ab4 100644 --- a/module06/ex00/i2c.c +++ b/module06/ex00/i2c.c @@ -2,7 +2,7 @@ #define TWI_PRESCALE_VALUE 1 // can be 1, 4, 16, 64 #define TWI_FREQ 100000UL // 100kHz I2C -#define SLAVE_ADDRESS 42 // 22.3.3 : address 0000000 and 1111xxx are reserved, 42 is 0101010 +#define SLAVE_ADDRESS 0x38 // doc AHT20, 7.3 : address of thermistor void i2c_init(void) { TWSR = TWI_PRESCALE_SET(TWI_PRESCALE_VALUE); // 22.9.3 : (Status Register) set prescaler @@ -14,7 +14,6 @@ void i2c_start(void) { while (!(TEST(TWCR, TWINT))); // p225 example code : Wait for TWINT Flag set. This indicates that the START condition has been transmitted uint8_t status = TWSR & 0b11111000; // Table 22-2. Status codes for Master Transmitter Mode - uart_printstr_itoa_base_endl(status, 2); if (status != TW_START && status != TW_REP_START) { TWCR = SEND_STOP_CONDITION; return; diff --git a/module06/ex00/main.c b/module06/ex00/main.c index bf7606f..5c1bf9e 100644 --- a/module06/ex00/main.c +++ b/module06/ex00/main.c @@ -1,11 +1,34 @@ #include "header.h" +// status before init : 11111000 +// status after init : 11111000 +// status after start : 1000 +// status after stop : 11111000 + // description int main() { + uint8_t status; + uart_init(); + + status = TWSR & 0b11111000; // Table 22-2. Status codes for Master Transmitter Mode + uart_printstr("status before init : "); + uart_printstr_itoa_base_endl(status, 2); + i2c_init(); + status = TWSR & 0b11111000; // Table 22-2. Status codes for Master Transmitter Mode + uart_printstr("status after init : "); + uart_printstr_itoa_base_endl(status, 2); + i2c_start(); + status = TWSR & 0b11111000; // Table 22-2. Status codes for Master Transmitter Mode + uart_printstr("status after start : "); + uart_printstr_itoa_base_endl(status, 2); + i2c_stop(); + status = TWSR & 0b11111000; // Table 22-2. Status codes for Master Transmitter Mode + uart_printstr("status after stop : "); + uart_printstr_itoa_base_endl(status, 2); while(1); }