-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add a new API attachInterruptWithDebounce() that allows user to control debounce time setting * Revise `delayMicroseconds()` to use `hal_gpt` API instead. * Add new library `SoftwareSerial` that is modified from the Arduino SoftwareSerial library, replacing register writes to generic Arduino APIs, e.g. `digitalWrite`. LinkIt 7697 has a faster clock so the generic GPIO writes API is still fast enough for SoftwareSerial up to 115200 baud.
- Loading branch information
Showing
10 changed files
with
637 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
.../mt7697/libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
Software serial multple serial test | ||
Receives from the hardware serial, sends to software serial. | ||
Receives from software serial, sends to hardware serial. | ||
The circuit: | ||
* RX is digital pin 2 (connect to TX of other device) | ||
* TX is digital pin 11 (connect to RX of other device) | ||
Note: | ||
Not all pins on LinkIt 7697 support change interrupts, | ||
so only the following can be used for RX: | ||
2, 3 | ||
created back in the mists of time | ||
modified 25 May 2012 | ||
by Tom Igoe | ||
based on Mikal Hart's example | ||
modified Dec 2017 | ||
by MediaTek Labs | ||
This example code is in the public domain. | ||
*/ | ||
#include <SoftwareSerial.h> | ||
|
||
// On LinkIt 7697, the RX pin must be one of the EINT pins, such as P2 and P3. | ||
// There are no limitations on TX pin. | ||
SoftwareSerial mySerial(2, 11); // RX, TX | ||
|
||
void setup() { | ||
// Open serial communications and wait for port to open: | ||
Serial.begin(9600); | ||
while (!Serial) { | ||
; // wait for serial port to connect. Needed for native USB port only | ||
} | ||
|
||
|
||
Serial.println("Goodnight moon!"); | ||
|
||
// set the data rate for the SoftwareSerial port | ||
mySerial.begin(4800); | ||
mySerial.println("Hello, world?"); | ||
} | ||
|
||
void loop() { // run over and over | ||
if (mySerial.available()) { | ||
Serial.write(mySerial.read()); | ||
} | ||
if (Serial.available()) { | ||
mySerial.write(Serial.read()); | ||
} | ||
} | ||
|
90 changes: 90 additions & 0 deletions
90
...rdware/arduino/mt7697/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
/* | ||
Software serial multple serial test | ||
Receives from the two software serial ports, | ||
sends to the hardware serial port. | ||
In order to listen on a software port, you call port.listen(). | ||
When using two software serial ports, you have to switch ports | ||
by listen()ing on each one in turn. Pick a logical time to switch | ||
ports, like the end of an expected transmission, or when the | ||
buffer is empty. This example switches ports when there is nothing | ||
more to read from a port | ||
The circuit: | ||
Two devices which communicate serially are needed. | ||
* First serial device's TX attached to digital pin 2(RX), RX to pin 11(TX) | ||
* Second serial device's TX attached to digital pin 3(RX), RX to pin 9(TX) | ||
Note: | ||
Not all pins on LinkIt 7697 support change interrupts, | ||
so only the following can be used for RX: | ||
2, 3 | ||
created 18 Apr. 2011 | ||
modified 19 March 2016 | ||
by Tom Igoe | ||
based on Mikal Hart's twoPortRXExample | ||
modified Dec 2017 | ||
by MediaTek Labs | ||
This example code is in the public domain. | ||
*/ | ||
|
||
#include <SoftwareSerial.h> | ||
|
||
// software serial #1: RX = digital pin 2, TX = digital pin 11 | ||
SoftwareSerial portOne(2, 11); | ||
|
||
// software serial #2: RX = digital pin 3, TX = digital pin 9 | ||
SoftwareSerial portTwo(3, 9); | ||
|
||
void setup() { | ||
// Open serial communications and wait for port to open: | ||
Serial.begin(9600); | ||
while (!Serial) { | ||
; // wait for serial port to connect. Needed for native USB port only | ||
} | ||
|
||
|
||
// Start each software serial port | ||
portOne.begin(9600); | ||
portTwo.begin(9600); | ||
} | ||
|
||
void loop() { | ||
// By default, the last intialized port is listening. | ||
// when you want to listen on a port, explicitly select it: | ||
portOne.listen(); | ||
Serial.println("Data from port one:"); | ||
// while there is data coming in, read it | ||
// and send to the hardware serial port: | ||
while (portOne.available() > 0) { | ||
char inByte = portOne.read(); | ||
Serial.write(inByte); | ||
} | ||
|
||
// blank line to separate data from the two ports: | ||
Serial.println(); | ||
|
||
// Now listen on the second port | ||
portTwo.listen(); | ||
// while there is data coming in, read it | ||
// and send to the hardware serial port: | ||
Serial.println("Data from port two:"); | ||
while (portTwo.available() > 0) { | ||
char inByte = portTwo.read(); | ||
Serial.write(inByte); | ||
} | ||
|
||
// blank line to separate data from the two ports: | ||
Serial.println(); | ||
} | ||
|
||
|
||
|
||
|
||
|
||
|
30 changes: 30 additions & 0 deletions
30
middleware/third_party/arduino/hardware/arduino/mt7697/libraries/SoftwareSerial/keywords.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
####################################### | ||
# Syntax Coloring Map for SoftwareSerial | ||
# (formerly NewSoftSerial) | ||
####################################### | ||
|
||
####################################### | ||
# Datatypes (KEYWORD1) | ||
####################################### | ||
|
||
SoftwareSerial KEYWORD1 | ||
|
||
####################################### | ||
# Methods and Functions (KEYWORD2) | ||
####################################### | ||
|
||
begin KEYWORD2 | ||
end KEYWORD2 | ||
read KEYWORD2 | ||
write KEYWORD2 | ||
available KEYWORD2 | ||
isListening KEYWORD2 | ||
overflow KEYWORD2 | ||
flush KEYWORD2 | ||
listen KEYWORD2 | ||
peek KEYWORD2 | ||
|
||
####################################### | ||
# Constants (LITERAL1) | ||
####################################### | ||
|
10 changes: 10 additions & 0 deletions
10
...e/third_party/arduino/hardware/arduino/mt7697/libraries/SoftwareSerial/library.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name=SoftwareSerial | ||
version=0.1 | ||
author=MediaTek Labs | ||
maintainer=MediaTek Labs <http://labs.mediatek.com> | ||
sentence=Enables serial communication on EINT pins. | ||
paragraph=The SoftwareSerial library has been developed to allow serial (UART) transmission(TX) on any pin, and receiving(RX) on EINT pins such as P2 and P3 on LinkIt 7697 HDK. | ||
category=Communication | ||
url=https://github.com/MediaTek-Labs/Arduino-Add-On-for-LinkIt-SDK | ||
architectures=linkit_rtos | ||
|
Oops, something went wrong.