Upload files to "/"

This commit is contained in:
Adema 2025-02-17 06:25:24 +01:00
parent 7e5082f72d
commit 9e91df209a
4 changed files with 114 additions and 0 deletions

27
i2c_256_master_t4.ino Normal file
View File

@ -0,0 +1,27 @@
#include <Arduino.h>
#include <i2c_device.h>
#define SLAVE_ADDR 0x08
#define BUFFER_SIZE 256
i2c_device i2c = i2c_device(Wire, SLAVE_ADDR); // Use default Wire (I2C1)
uint8_t dataBuffer[BUFFER_SIZE];
void setup() {
Wire.begin();
Wire.setClock(1000000); // Set I2C clock speed to 1 MHz
// Fill buffer with test data
for (int i = 0; i < BUFFER_SIZE; i++) {
dataBuffer[i] = i;
}
delay(1000); // Allow slave to initialize
}
void loop() {
i2c.write(dataBuffer, BUFFER_SIZE); // Send full 256 bytes in one transaction
delay(10); // Small delay before next transmission
}

26
i2c_256_slave_t4.ino Normal file
View File

@ -0,0 +1,26 @@
#include <Teensy4I2C.h>
#define SLAVE_ADDR 0x08
#define BUFFER_SIZE 256
uint8_t receivedData[BUFFER_SIZE];
void receiveEvent(size_t count) {
I2C.read(receivedData, count);
}
void setup() {
I2C.begin(SLAVE_ADDR);
I2C.onReceive(receiveEvent);
Serial.begin(115200);
}
void loop() {
delay(500);
Serial.print("Received Data: ");
for (int i = 0; i < BUFFER_SIZE; i++) {
Serial.print(receivedData[i], HEX);
Serial.print(" ");
}
Serial.println();
}

27
i2c_master.ino Normal file
View File

@ -0,0 +1,27 @@
#include <Wire.h>
#define SLAVE_ADDRESS 0x20
void setup()
{
Wire.setClock(1000000);
Serial.begin(9600);
Wire.begin();
}
void loop()
{
Wire.beginTransmission(SLAVE_ADDRESS);
Wire.write(0x09);
byte busStatus = Wire.endTransmission();
if(busStatus !=0)
{
Serial.println("I2C Bus error!");
while(true);
}
Serial.println("Data Transmission is ok!");
//--------------------------------------
Wire.requestFrom(SLAVE_ADDRESS, 1);
byte m = Wire.read();
Serial.println(m, HEX); //should show: 7
delay(1000);
}

34
i2c_slave.ino Normal file
View File

@ -0,0 +1,34 @@
#include <Wire.h>
#define SLAVE_ADDRESS 0x20
byte reTxData;
volatile bool flag = false;
void setup()
{
Wire.setClock(1000000);
Serial.begin(9600);
Wire.onReceive(receiveEvent);
Wire.onRequest(sendEvent);
Wire.begin(SLAVE_ADDRESS);
}
void loop()
{
if (flag == true)
{
Serial.print("Data received from Master: ");
Serial.println(reTxData);
flag = false;
}
}
void receiveEvent(int numBytes)
{
reTxData = Wire.read();
flag = true;
}
void sendEvent()
{
Wire.write(reTxData);
}