ASURO Library  2.80
switches.c
gehe zur Dokumentation dieser Datei
1 /****************************************************************************/
40 /*****************************************************************************
41 * *
42 * This program is free software; you can redistribute it and/or modify *
43 * it under the terms of the GNU General Public License as published by *
44 * the Free Software Foundation; either version 2 of the License, or *
45 * any later version. *
46 * *
47 *****************************************************************************/
48 #include "asuro.h"
49 #include "myasuro.h"
50 
51 
52 
53 /****************************************************************************/
88 unsigned char PollSwitch (void)
89 {
90  unsigned int i;
91 
92  if (!switched) return 0; // Kehrt sofort zurück, falls kein Taster gedrueckt ist
93 
94  i = ReadADC(SWITCH, 15); // sleep 15 ms -> Rückwärtskompatibel?! und wg. timing da draussen und drinnen (IsrStandard())
95 
96  if (i>=MY_SWITCH_THRESHHOLD) return 0; // Eher rauschen -> raus hier!
97 
98  // Es wurde "ganz sicher" eine Taste gedrückt.
99  /*
100  Die Original Umrechenfunktion von Jan Grewe - DLR wurde ersetzt durch
101  eine Rechnung ohne FLOAT-Berechnungen.
102  return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 61.0 + 0.5));
103 
104  Wert 61L evtl. anpasssen, falls fuer K1 falsche Werte zurueckgegebn werden.
105  */
106  return ((10240000L / (long)i - 10000L) * MY_SWITCH_VALUE + 5000L) / 10000;
107 }
108 
109 
110 
111 /****************************************************************************/
132 void StartSwitch (void)
133 {
134  // ADC Wert von Switchen wird immer abgefragt
135  // siehe ISRStandard() dort auch das handling von switched=TRUE
136  cli ();
137  switched = FALSE;
138  sei ();
139 }
140 
141 
142 
143 
144 /****************************************************************************/
153 void StopSwitch (void)
154 {
155  // ADC Wert von Switchen wird immer abgefragt
156 }