Added arduino libs

هذا الالتزام موجود في:
Mik6e6
2020-07-04 12:31:18 -04:00
ملتزم من قبل GitHub
الأصل 3d9b49e518
التزام dc9596f994
90 ملفات معدلة مع 9419 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1,14 @@
# Arduino Makefile, see https://github.com/sudar/Arduino-Makefile (it's awesome!)
BOARD_TAG = pro
BOARD_SUB = 16MHzatmega328
ARDUINO_PORT = /dev/ttyUSB0
#BOARD_TAG = 2560
#ARDUINO_PORT = /dev/ttyACM0
ARDUINO_LIBS =
AVR_TOOLS_DIR = /usr
CFLAGS_STD = -g
CXXFLAGS_STD = -g
include /usr/share/arduino/Arduino.mk

عرض الملف

@@ -0,0 +1,129 @@
// EnableInterrupt OOSimple object-oriented example sketch.
// See https://github.com/GreyGnome/EnableInterrupt and the README.md for more information.
#include <EnableInterrupt.h>
// Modify this at your leisure. See https://github.com/GreyGnome/EnableInterrupt/wiki/Usage#Summary
#define ARDUINOPIN 8
class Simple {
public:
Simple() {
init();
}
void updateSimpleVariable();
uint8_t getSimpleVariable();
private:
volatile uint8_t _sv; // a simple variable. Notice that it is volatile.
void init();
};
void Simple::init() {
_sv=0;
}
void Simple::updateSimpleVariable() {
_sv++;
}
uint8_t Simple::getSimpleVariable() {
return _sv;
}
#ifdef __cplusplus
extern "C" {
#endif
void *createSimple() {
return new Simple();
}
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
uint8_t getSimpleVariable(void *anObject) {
return static_cast<Simple*>(anObject)->getSimpleVariable();
}
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
void updateSimpleVariable(void *anObject) {
static_cast<Simple*>(anObject)->updateSimpleVariable();
}
#ifdef __cplusplus
}
#endif
void *simpleObject0; // this is numbered 0. You can create more, for example void *simpleObject1
#ifdef __cplusplus
extern "C" {
#endif
// If you create more objects, you need to create more interruptFunctionN()'s
// that update their simple variables, for example interruptFunction1() .
void interruptFunction0() {
updateSimpleVariable(simpleObject0);
}
#ifdef __cplusplus
}
#endif
// Attach the interrupt in setup()
void setup() {
Serial.begin(115200);
Serial.println("---------------------------------------");
// If you want to enable more pins, you will need to recreate these 3 lines for
// your new pin, object, and function.
pinMode(ARDUINOPIN, INPUT_PULLUP); // See http://arduino.cc/en/Tutorial/DigitalPins
simpleObject0 = createSimple();
enableInterrupt(ARDUINOPIN, interruptFunction0, CHANGE);
}
// In the loop, we just print our object's simple variable. It is updated by the interrupt routine.
void loop() {
Serial.println("---------------------------------------");
delay(1000); // Every second,
Serial.print("Pin was interrupted: ");
Serial.print(getSimpleVariable(simpleObject0), DEC); // print the interrupt count.
Serial.println(" times so far.");
}
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////// GORY DETAILS //////////////////////////////////////
// This example demonstrates the use of the EnableInterrupt library on a single pin of your choice.
// It demonstrates calling an object's method from an interrupt. Other objects can be created and called
// by simply and creating more simpleObjectN's adding more interruptFunctionN()'s.
//
// This has only been tested on an Arduino Duemilanove and Mega ADK.
// It is designed to work with the Arduino Duemilanove/Uno, Arduino Mega2560/ADK, the Arduino
// Leonardo, and the Arduino Due. Please let me know how you fare on the Leonardo or Due.
// To use:
// 1. You must be using a fairly recent version of the Arduino IDE software on your PC/Mac,
// that is, version 1.0.1 or later. Check Help->About Arduino in the IDE.
// 2. Wire a simple switch to any Analog or Digital pin (known as ARDUINOPIN, defined below)
// that supports interrupts. See https://github.com/GreyGnome/EnableInterrupt/wiki/Usage#Summary
// Attach the other end to a GND pin. A "single pole single throw momentary contact normally
// open" // pushbutton switch is best for the most interrupting fun.
// See https://www.sparkfun.com/products/97 and https://octopart.com/b3f-1000-omron-3117
// 3. When pressed, the switch will connect the pin to ground ("low", or "0") voltage, and interrupt the
// processor. See http://arduino.cc/en/Tutorial/DigitalPins
// 4. The interrupt is serviced immediately, and the ISR (Interrupt SubRoutine) sets the value of a global
// variable. Open Tools->Serial Monitor in the IDE to see the results of your interrupts.
// 5. Peruse the Examples directory for more elaborate examples.
// 6. Create your own sketch using the EnableInterrupt library!