/* STM32 Blue Pill project using the STM32 Arduino Core (stm32duino) */
uint8_t TRG = PB12;
typedef unsigned long timestamp_t;
bool curTrg, lstTrg;
timestamp_t tmNow, tmPrev, tmPrev2, tmDiff;
bool chkTrg(){
curTrg = digitalRead(TRG);
//has it changed since last time?
if(curTrg != lstTrg){
//Serial.println(curTrg);
if(!curTrg && lstTrg){
lstTrg = curTrg;
return true;
}
}
lstTrg = curTrg;
return false;
}
float RPM(){
return ((60000000/tmDiff));
}
void setup() {
Serial.begin(115200);
pinMode(TRG, INPUT );
//Serial.println("setup()");
}
void loop() {
if(chkTrg()){
tmNow = micros();
tmDiff = (tmNow - tmPrev);
if(tmPrev > 0){
Serial.println(RPM());
//Serial.println((1000000/tmDiff)*60 + "\n\n");
}
tmPrev = tmNow;
}
}