Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:f1c4da32d334, 2022-04-25 (annotated)
- Committer:
- fernando_moraless
- Date:
- Mon Apr 25 05:48:45 2022 +0000
- Revision:
- 0:f1c4da32d334
SLAVE
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fernando_moraless | 0:f1c4da32d334 | 1 | /* |
| fernando_moraless | 0:f1c4da32d334 | 2 | * Copyright (c) 2006-2020 Arm Limited and affiliates. |
| fernando_moraless | 0:f1c4da32d334 | 3 | * SPDX-License-Identifier: Apache-2.0 |
| fernando_moraless | 0:f1c4da32d334 | 4 | */ |
| fernando_moraless | 0:f1c4da32d334 | 5 | #include <mbed.h> |
| fernando_moraless | 0:f1c4da32d334 | 6 | |
| fernando_moraless | 0:f1c4da32d334 | 7 | Serial pc(USBTX, USBRX); |
| fernando_moraless | 0:f1c4da32d334 | 8 | |
| fernando_moraless | 0:f1c4da32d334 | 9 | I2CSlave slave(I2C_SDA, I2C_SCL); |
| fernando_moraless | 0:f1c4da32d334 | 10 | |
| fernando_moraless | 0:f1c4da32d334 | 11 | char addr = 0xA0; |
| fernando_moraless | 0:f1c4da32d334 | 12 | |
| fernando_moraless | 0:f1c4da32d334 | 13 | int main() |
| fernando_moraless | 0:f1c4da32d334 | 14 | { |
| fernando_moraless | 0:f1c4da32d334 | 15 | char buf[10]; |
| fernando_moraless | 0:f1c4da32d334 | 16 | char msg[] = "Slave!"; |
| fernando_moraless | 0:f1c4da32d334 | 17 | pc.printf("\x1b[2J"); //CLEAR |
| fernando_moraless | 0:f1c4da32d334 | 18 | pc.printf("\r"); //Mueve cursor al origen |
| fernando_moraless | 0:f1c4da32d334 | 19 | pc.printf("SLAVE\r\n"); |
| fernando_moraless | 0:f1c4da32d334 | 20 | |
| fernando_moraless | 0:f1c4da32d334 | 21 | slave.address(addr); |
| fernando_moraless | 0:f1c4da32d334 | 22 | slave.frequency (100000); |
| fernando_moraless | 0:f1c4da32d334 | 23 | pc.printf("SLAVE: %d\r\n",addr); |
| fernando_moraless | 0:f1c4da32d334 | 24 | |
| fernando_moraless | 0:f1c4da32d334 | 25 | while (1) |
| fernando_moraless | 0:f1c4da32d334 | 26 | { |
| fernando_moraless | 0:f1c4da32d334 | 27 | int i = slave.receive(); |
| fernando_moraless | 0:f1c4da32d334 | 28 | switch (i) { |
| fernando_moraless | 0:f1c4da32d334 | 29 | case I2CSlave::ReadAddressed: |
| fernando_moraless | 0:f1c4da32d334 | 30 | slave.write(msg, strlen(msg) + 1); // Includes null char |
| fernando_moraless | 0:f1c4da32d334 | 31 | break; |
| fernando_moraless | 0:f1c4da32d334 | 32 | case I2CSlave::WriteGeneral: |
| fernando_moraless | 0:f1c4da32d334 | 33 | slave.read(buf, 10); |
| fernando_moraless | 0:f1c4da32d334 | 34 | printf("Read G: %s\n", buf); |
| fernando_moraless | 0:f1c4da32d334 | 35 | break; |
| fernando_moraless | 0:f1c4da32d334 | 36 | case I2CSlave::WriteAddressed: |
| fernando_moraless | 0:f1c4da32d334 | 37 | slave.read(buf, 10); |
| fernando_moraless | 0:f1c4da32d334 | 38 | printf("Read A: %s\n", buf); |
| fernando_moraless | 0:f1c4da32d334 | 39 | break; |
| fernando_moraless | 0:f1c4da32d334 | 40 | } |
| fernando_moraless | 0:f1c4da32d334 | 41 | for (int i = 0; i < 10; i++) { |
| fernando_moraless | 0:f1c4da32d334 | 42 | buf[i] = 0; // Clear buffer |
| fernando_moraless | 0:f1c4da32d334 | 43 | } |
| fernando_moraless | 0:f1c4da32d334 | 44 | |
| fernando_moraless | 0:f1c4da32d334 | 45 | } |
| fernando_moraless | 0:f1c4da32d334 | 46 | } |