Files
Arduino/LeonardoProMicro/DiagInterrupt/DiagInterrupt.ino

91 lines
2.2 KiB
C++

//#include <avr/eeprom.h>
//#include <Servo.h> // model servo: DS3218 PRO
#include <SPI.h>
#include <Wire.h>
#include <time.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define Version "0"
//ostatnia zmiana: zmiana na PCB, dostrajanie
////2DO:
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define PinInSpeed 0 //on board: RXI
#define ServoSwitch 4 //on board: 4
#define ServoPin 8 //on board: 8
#define BrakingLight 9 //on board: 9 BrakingLight
#define PinLED 10 //on board: 10 ORANGE loop signal
#define Btn1 18 //on board: A0 Button0
#define Btn2 19 //on board: A1 Button1
#define ServoMaxAngle 130
#define MaxAngle 179
#define MinAngle 1
#define MaxGear 8
#define MinGear 1
#define WheelCircumference 2.130
#define MagnetsCnt 4
#define ms2kmh 3.6
#define Pi 3.1416
#define TimeToSleep 180000 //3 min
//SPEED
int interpt_cnt = 0;
void setup() {
//SERVO
//
// Serial.begin(9600);
//DIPLAY settings
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.clearDisplay();
display.setTextColor(WHITE);
display.setRotation(0);
display.setTextSize(3);
display.setCursor(0, 0);
display.println("Version:");
display.setCursor(0, 25);
display.println(Version);
display.display();
delay(5);
//INPUT
pinMode(PinInSpeed, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
//Interrupts
attachInterrupt(digitalPinToInterrupt(PinInSpeed), diag, FALLING);
}
void loop() {
int local_interpt_cnt = 0;
noInterrupts();
local_interpt_cnt = interpt_cnt;
interrupts();
display.clearDisplay();
display.println("Interupts cnt: ");
display.setCursor(0, 20);
display.println(local_interpt_cnt);
display.setTextSize(2);
display.display();
delay(500);
}
void diag(){
interpt_cnt = interpt_cnt +1;
}