aboutsummaryrefslogtreecommitdiff
path: root/software/main/iic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'software/main/iic.cpp')
-rw-r--r--software/main/iic.cpp174
1 files changed, 0 insertions, 174 deletions
diff --git a/software/main/iic.cpp b/software/main/iic.cpp
deleted file mode 100644
index ac74818..0000000
--- a/software/main/iic.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * iic.cpp
- *
- * Created on: 26.02.2022
- * Author: steffen
- */
-
-#include "iic.h"
-
-esp_err_t I2C_read(uint8_t slave_addr, uint8_t reg_addr, uint8_t *data, uint8_t len) {
- return i2c_master_write_read_device(I2C_MASTER_NUM, slave_addr, &reg_addr, 1, data, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-}
-esp_err_t I2C_register_write_byte(uint8_t slave_addr, uint8_t reg_addr, uint8_t data) {
- uint8_t write_buf[2] = { reg_addr, data };
- return i2c_master_write_to_device(I2C_MASTER_NUM, slave_addr, write_buf, sizeof(write_buf), I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-}
-esp_err_t I2C_init(void) {
- int res1,res2;
- int I2C_master_port = I2C_MASTER_NUM;
- i2c_config_t I2C_conf = { .mode = I2C_MODE_MASTER, .sda_io_num = I2C_MASTER_SDA_IO, .scl_io_num = I2C_MASTER_SCL_IO, .sda_pullup_en = GPIO_PULLUP_ENABLE, .scl_pullup_en = GPIO_PULLUP_ENABLE, .master { .clk_speed = I2C_MASTER_FREQ_HZ, } };
- i2c_param_config(I2C_master_port, &I2C_conf);
- res1=i2c_driver_install(I2C_master_port, I2C_conf.mode,
- I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
-
- I2C_buf[0] = 0x7F; // write data to output port 1
- I2C_buf[1] = 0x00; // write data to output port 1
- res1 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- res2 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP2, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %d %d %02X\n", res1,res2,I2C_buf[0]);
-
- I2C_buf[0] = 0x02; // write data to output port 1
- I2C_buf[1] = 0xFF; // write data to output port 1
- I2C_buf[2] = 0xFF; // write data to output port 1
- I2C_buf[3] = 0x00; // write data to output port 1
- I2C_buf[4] = 0x00; // write data to output port 1
- res1 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 5, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- res2 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP2, I2C_buf, 5, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %d %d %02X\n", res1,res2,I2C_buf[0]);
-
- I2C_buf[0] = 0x11; // write data to output port 1
- I2C_buf[1] = 0x10; // write data to output port 1
- res1 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- res2 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP2, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %d %d %02X\n", res1,res2,I2C_buf[0]);
-
-
-
- // printf("\nI2C wrote 0x%02X%02X: %d\n", I2C_buf[0], I2C_buf[1], res1);
-// I2C_buf[0] = 0x00; // lese 3 bytes
-// res2 = i2c_master_read_from_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 1, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-
-
- /*
- I2C_buf[0] = 0x8C; // write config port 0 with auto inc
- I2C_buf[1] = 0xFF; // Port 0 Input
- I2C_buf[2] = 0x00; // Port 1 Output
- I2C_buf[3] = 0xFF; // Port 2 Input
- res = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 4, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %02X %02X: %d\n", I2C_buf[0], I2C_buf[1], res);
-
- I2C_buf[0] = 0x05; // write data to output port 1
- I2C_buf[1] = 0x00;
- res = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %02X %02X: %d\n", I2C_buf[0], I2C_buf[1], res);
-*/
- return res1;
-}
-esp_err_t ADC_init(void) {
- int res;
-
- I2C_buf[0] = 0x01; // -> config register
- I2C_buf[1] = 0x40; // 0 100 000 0 A0-GND +-6.144 CONT
- I2C_buf[2] = 0x0; // O00 0 0 0 11 8 SPS no comp
- res = i2c_master_write_to_device(I2C_MASTER_NUM, ADC_DEFAULT_IIC_ADDR, I2C_buf, 3, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nMaster wrote %02X %02X: %d\n", I2C_buf[0], I2C_buf[1], res);
- return res;
-}
-int ADCReadAll(void) {
-// for i in range(ADC_CHAN_NUM):
-// data=self.bus.read_i2c_block_data(self.addr,REG_RAW_DATA_START+i,2)
-// val=data[1]<<8|data[0]
-// array.append(val)
- int res1=0,res2,i;
- I2C_buf[0] = 0x00; // conversion register
- I2C_buf[1] = 0x00;
- I2C_buf[2] = 0x00;
- res1 = i2c_master_write_to_device(I2C_MASTER_NUM, ADC_DEFAULT_IIC_ADDR, I2C_buf, 1, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-// printf("\nI2C wrote 0x%02X: %d\n", I2C_buf[0], res1);
-
- for (i=0;i<256;i++) {
- res2 = i2c_master_read_from_device(I2C_MASTER_NUM, ADC_DEFAULT_IIC_ADDR, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("I2C read %02x -> ",i);
-// for (i=0;i<4;i++) {
- printf(" %02X %02X ",I2C_buf[0],I2C_buf[1]);
-// }
- printf(" %d\n", res2);
- }
-// printf(" #:S%d R:%d ", res1, res2);
- fflush(stdout);
-
- return res1;
-}
-int DoorIsClosed(int doormask) {
- int res1,res2;
- I2C_buf[0] = 0x80; // Setze CMD read port 0
- I2C_buf[1] = 0x00;
- I2C_buf[2] = 0x00;
- res1 = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 1, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-// printf("\nI2C wrote 0x%02X%02X: %d\n", I2C_buf[0], I2C_buf[1], res1);
- I2C_buf[0] = 0x00; // lese 3 bytes
- res2 = i2c_master_read_from_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 3, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
-// printf("\nI2C read 0x %02X %02X %02X: %d\n", I2C_buf[0], I2C_buf[1], I2C_buf[2], res2);
- printf(" #:S%d R:%d ", res1, res2);
- fflush(stdout);
- // Open 0x0F = 0000 1111
- // 1 closed 0x0B = 0000 1011
- // 2 closed 0x0E = 0000 1110
- // 3 closed 0x0D = 0000 1101
- // 4 closed 0x07 = 0000 0111
- if ((I2C_buf[LOCKR_PORT] & doormask)==0) {
- return 1;
- } else {
- return 0;
- }
-
-}
-int DoorOpen(int door) {
- int mask=0;
- int maskr=0;
- int res;
- int to=10;
- switch (door) { // we allow only one door to open
- case 1: {
- mask = LOCK1;
- maskr= LOCK1R;
- } break;
- case 2: {
- mask = LOCK2;
- maskr= LOCK2R;
- } break;
- case 3: {
- mask = LOCK3;
- maskr= LOCK3R;
- } break;
- default: {
- mask = LOCK4;
- maskr= LOCK4R;
- }
- }
-
- I2C_buf[0] = 0x05;
- I2C_buf[1] = mask;
- printf("\nMASTER wrote %02X %02X\n", I2C_buf[0], I2C_buf[1]);fflush(stdout);
- res = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nI2C wrote 0x%02X%02X: %d\n", I2C_buf[0], I2C_buf[1], res);fflush(stdout);
- while (to>0) {
- if (DoorIsClosed(maskr)==0) {
- to=0;
- } else {
- to--;
- vTaskDelay(1);
- }
- }
- I2C_buf[0] = 0x05;
- I2C_buf[1] = 0x00;
- printf("\nMASTER wrote 0x%02X%02X\n", I2C_buf[0], I2C_buf[1]);fflush(stdout);
- res = i2c_master_write_to_device(I2C_MASTER_NUM, I2C_PORTEXP1, I2C_buf, 2, I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
- printf("\nI2C wrote 0x%02X%02X: %d\n", I2C_buf[0], I2C_buf[1], res);
-
- return 0;
-}
-
-
-