Tipkalo Linija

Dependents:   Lilnija_29012017

Revision:
2:9085093855f0
Parent:
1:fa666d2759a4
--- a/tipkalo.cpp	Sun Jan 29 23:47:12 2017 +0000
+++ b/tipkalo.cpp	Wed Feb 08 08:36:23 2017 +0000
@@ -1,33 +1,57 @@
-/** Klasa za dodavanje tipkala
-* Status koliko puta je tipka pritisnuta
+/** Projektiranje ugradbenih računalnih sustava
+* Default metoda za dodavanje tipkala
+* @author: mario_meh
+* @code
+* #include "mbed.h"
+* #include "tipkalo.h"
+*
+* @endcode
 */
 #include "mbed.h"
 #include "tipkalo.h"
 
-Tipkalo::Tipkalo(PinName T) : _T(T), _countT(0) {
-    /** status je objekt koji bilježi ako je tipkalo u aktivnom stanju */
-    t_status status = new t_status;
-    /** Na donji brid pozove funkciju tDolje(), koja vraća 1 
-    * i počne timer
-    */
-    Tipkalo::status.pritisnut = TGORE;
-    _T.fall(this, &Tipkalo::tDolje);
-    /** Započni brojanje */
-    Timer.debounce;
-    debounce.start();
+int timeAtPress;
+bool pressed = false;
+
+Tipkalo::Tipkalo() : pbutton(PTA5), ledSec(PTE30)
+
+{
+    t.start();
+    pbutton.fall(this, &Tipkalo::blinkFall);
+    pbutton.rise(this, &Tipkalo::blinkRise);
+}
+
+void Tipkalo::blinkFall() {
+    if(t.read_ms() > t_milisec_pritisnut) {
+        pressed = false;
+        ledSec = 0;
+        //ledSec != ledSec;
+    } t.reset();
+    toggler.attach(this, &Tipkalo::togglerOff, 0.3);
 }
 
-t_status Tipkalo::tDolje() {
-    
-    status.radim = TDOLJE;
-    _countT++;
-    status.pritisnut = _countT;
-    return TDOLJE;
-    
+void Tipkalo::togglerOff() { 
+    if(pressed == false) {        
+        ledSec = 0; 
+        //fallL = 0;
+        pressed = true;
+        t.reset();
+    }
 }
 
-
-
+void Tipkalo::blinkRise() {
+    if(t.read_ms() > t_milisec_pritisnut) {
+        pressed = true;
+        ledSec = 1;
+        //ledSec != ledSec;
+    } t.reset();
+}
 
-    
-    
\ No newline at end of file
+void Tipkalo::bStop() {
+    toggler.detach();
+}
+
+bool Tipkalo::LStatus() {
+    return pressed;
+}
+ 
\ No newline at end of file