-
Datei
tasten.c
; // Port lesen if (!(L & (1<<5))) // Taste gedrückt ? { if (!OldL) // nicht beim Entprellen ? { OldL = 50; // 500 ms Vorgabe Add_Event(idLTast); } } else { if (OldL) --OldL; } // entprellen if (!(L & (1<<12))) // Taste gedrückt ? { if (!OldR) // nicht beim Entprellen ? { OldR = 50; // 500 ms Vorgabe Add_Event(idRTast); } } else { if (OldR) --OldR; } // entprellen if (!(L & (1<<13))) // Taste gedrückt ? { if (!OldT) // nicht beim Entprellen ? { OldT = 50; // 500
in „BastlerProjekt - Drehgeberauswertung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
avr_tast.c
~tasten_schalter; // alle Bits invertieren if(rep_ctr) rep_ctr--; // repeat-counter dekrementieren entprell_ctr++; // Entprell-counter inkrementieren if(tasten_schalter != temp_tasten) { // Aenderung der Bits ? temp_tasten = tasten_schalter; // ja, speichern entprell_ctr=0; // und neu entprellen return; // mehr nicht } if(entprell_ctr < ENTPRELL_ZEIT) return; // Entprellzeit abwarten entprell_ctr=0; // und neu starten
in „Taster Abfrage“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
avr_tast.c
char // auch short oder long #define T0_NACHLADEWERT -39 // fuer ca. 100 Hz bei 4 MHz #define ENTPRELL_ZEIT 5 // 5 Zyklen -> 50ms entprellen #define FIRST_REPEAT 50 // 0,5 Sek. Pause bei gedrueckter Taste #define NEXT_REPEAT 10 // danach Wiederholung alle 0,1 Sek. static char taste; // 0 oder Tastencode
-
Datei
taster_entprellen.c
/* keyboard Interface: * 3 rows x 8 columns: P0.0 - P0.2 * P2 * support multiple keys pressed simultaniously * if more than two keys pressed, then every key need a decoupling diode * * 0x00 = no key changed * 0x01 .. 0x18 = key released * 0x81 .. 0x98 = key pressed */ //#pragma cd pl(9999) #include<avr/io.h> #define idata #define code #define P0 PORTA #define P2 PINB #define KEY_PRESS_MASK 0x80 #define uchar unsigned char uchar n_keys_pressed; // 0, 1 or 2 static uchar idata valid_keys[3]; // last returned values static uchar idata last_keys[3]; // t - 1 void InitKeyboard( void ) { uchar i; for
in „Matrix-Tastatur“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
TastenEntprellen.asm
zw. key_old und key_new eine "1" herraus kommt (UNTEN im programm) // in key_pressed werden die tasten gespeichert, die "entprellt sind" und eine "0-1" Flanke // festgestellt worden ist // Das Entprellen findet folgender maßen statt: // wurde im (vorrigen aufruf dieser ISR [Zeit-1]) eine Veränderung festgestellt => (key_changed = 1) // und im nächsten aufruf dieser ISR [Zeit+1]haben die Tasten den selben Status // dann sind diese Tasten "entprellt" ---> also: AND key_new , key_changed // => Enprellte Tasten // wobei das COMPLEMENT von key_new genommen wird, da diese LOW-aktiv sind // die
-
Datei
Taster_entprellen.c
io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdint.h> // Prototypen uint8_t Taster_einlesen(void); uint8_t Taster_entprellen(void); int main(void) { GlobalWertTaster = 0; // IO-Einstellen IO_DDR |= (1<<LED_Obergrenze) | (1<<LED_Untergrenze) | (1<<ausgabe_led); IO_PORT |= (1<<TASTER_Obergrenze) | (1<<TASTER_Untergrenze); //endlos while(1) { uint8_t Taster_Status = Taster_einlesen(); //debugging if(Taster_Status == 1) IO_PORT ^= (1<<LED_Untergrenze); if(Taster_Status == 2) IO_PORT ^= (1<<LED_Obergrenze
in „Fehler im Unterprogramm - Verständnisfrage (Taster entprellen)“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
taster_entprellen.pdf
key_old 8 eor key_state,iwr0 9 and iwr1,iwr0 10 or key_press,iwr1 27.01.2012 17:17:42 P:\EAGLE 5.0\Taster entprellen \taster entprellen.sch (Sheet: 1/1)
-
Datei
LED_ein_aus_Taster.asm
;Wert für Wartezeit für Tasterabfrage movwf d3 ;Wert in d3 schreiben btfsc LED ;LED an ;Ja? goto Taster_aus ;Nein, überspring goto Taster_aus goto Taster_aus btfss TASTER ;Taster gedrückt? = High ;Nein? goto Main ;Ja? call Delay - entprellen goto Main call Delay ;"entprellen" btfss TASTER ;Taster noch immer gedrückt? = High ;Nein? goto Main ;Ja? LED einschalten bsf LED ;LED einschalten goto Main Taster_aus btfss TASTER ;Taster gedrückt? = High ;Nein? goto Main ;Ja? goto Delay - entprellen goto Main call Delay ;"entprellen" btfss TASTER ;Taster noch immer gedrückt? = High ;Nein? goto Main ;Ja? LED
in „Achtung: Anfänger! PIC16F628 Fehlermeldung beim Assemblieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
entprell.h
) | (1<<PC3); _delay_ms(1); if (entprell(&PINC, PC0)) // Auslesen von Tasten S1 { S1 = true; // Taster S1 gedrückt } if (entprell(&PINC, PC1)) // Auslesen von Tasten S2 { S2 = true; // Taster S2 gedrückt } if (entprell(&PINC, PC2)) // Auslesen von Tasten S3 { S2 = true; // Taster S3 gedrückt } if (entprell(&PINC, PC3)) // Auslesen von Taste S4 { S4 = true; } // Umstellung auf Display (Pullups deaktivieren, Ausgang) PORTC = 0x00; //Pullupwiderstände
in „Probleme bei der Stueuerung über Taster!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
SM_fastPWM_50Hz_2.c
if(freigabe==1) { if(!(PINA & (1<<2)))//if(PINA.2==0) // Geschwindigkeit erhöhen { delay_us(40); entprell_TasterA2++; if(entprell_TasterA2==40000 && arcstufe<=10) { arcstufe++; entprell_TasterA2=0; ausgabe_arcstufe(); } if(PINA & (1<<2)) entprell_TasterA2=0; } if(!(PINA & (1<<3)))//if(PINA.3==0) // Geschwindigkeit verringern { delay_us(40); entprell_TasterA3++; if(entprell_TasterA3==40000 && arcstufe>=1) { arcstufe--; entprell_TasterA3=0; ausgabe_arcstufe(); } if(PINA & (1<<3)) entprell_TasterA3=0; } } } }
in „Frequenzmessung mit Timer0 ohne ICP“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
SM_fastPWM_50Hz_4_compa.c
if(freigabe==1) { if(!(PINA & (1<<2)))//if(PINA.2==0) // Geschwindigkeit erhöhen { delay_us(40); entprell_TasterA2++; if(entprell_TasterA2==40000 && arcstufe<=10) { arcstufe++; entprell_TasterA2=0; ausgabe_arcstufe(); } if(PINA & (1<<2)) entprell_TasterA2=0; } if(!(PINA & (1<<3)))//if(PINA.3==0) // Geschwindigkeit verringern { delay_us(40); entprell_TasterA3++; if(entprell_TasterA3==40000 && arcstufe>=1) { arcstufe--; entprell_TasterA3=0; ausgabe_arcstufe(); } if(PINA & (1<<3)) entprell_TasterA3=0; } } } }
in „Frequenzmessung mit Timer0 ohne ICP“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
SM_fastPWM_50Hz_4.c
if(freigabe==1) { if(!(PINA & (1<<2)))//if(PINA.2==0) // Geschwindigkeit erhöhen { delay_us(40); entprell_TasterA2++; if(entprell_TasterA2==40000 && arcstufe<=10) { arcstufe++; entprell_TasterA2=0; ausgabe_arcstufe(); } if(PINA & (1<<2)) entprell_TasterA2=0; } if(!(PINA & (1<<3)))//if(PINA.3==0) // Geschwindigkeit verringern { delay_us(40); entprell_TasterA3++; if(entprell_TasterA3==40000 && arcstufe>=1) { arcstufe--; entprell_TasterA3=0; ausgabe_arcstufe(); } if(PINA & (1<<3)) entprell_TasterA3=0; } } } }
in „Frequenzmessung mit Timer0 ohne ICP“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
SM_fastPWM_50Hz_4__2_.c
if(freigabe==1) { if(!(PINA & (1<<2)))//if(PINA.2==0) // Geschwindigkeit erhöhen { delay_us(40); entprell_TasterA2++; if(entprell_TasterA2==40000 && arcstufe<=10) { arcstufe++; entprell_TasterA2=0; ausgabe_arcstufe(); } if(PINA & (1<<2)) entprell_TasterA2=0; } if(!(PINA & (1<<3)))//if(PINA.3==0) // Geschwindigkeit verringern { delay_us(40); entprell_TasterA3++; if(entprell_TasterA3==40000 && arcstufe>=1) { arcstufe--; entprell_TasterA3=0; ausgabe_arcstufe(); } if(PINA & (1<<3)) entprell_TasterA3=0; } } } }
in „Frequenzmessung mit Timer0 ohne ICP“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Entprellen.c
****************************************************** EntPrell.c ---------- Übungsprojekt zum Entprellen von mechanischen Kontakten. An Pin 0 von Port D wird ein mechanischer Taster zu Masse angeschlossen. An Port B schliessen wir über Vorwiderstände 4-8 LED's an, um die Anzahl Tastendrücke anzuzeigen
in „Frage Zum Entprell-Programm Aus AVR-GCC TUTORIAL“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
MP3_FB_Pollin.bas
-* ' Adresse der Fernbedienung Const _adresse = &H_00 ' Alle Tastencodes der Fernbedienung Const _taste_0 = &H_16 Const _taste_1 = &H_0C Const _taste_2 = &H_18 Const _taste_3 = &H_5E Const _taste_4 = &H_08 Const _taste_5 = &H_1C Const _taste_6 = &H_5A Const _taste_7 = &H_42 Const _taste_8 = &H_52 Const _taste_9 = &H_4A Const _taste_ein_aus = &H_45 Const _taste_play_pause = &H_44 Const _taste_eq = &H_07 Const _taste_mode = &H_46 Const _taste_stumm = &H_47 Const _taste_rueck = &H_40 Const _taste_vor = &H_
in „[Bascom/AVR] Pollin-MP3-Modul steuern“ · Projekte & Code ·
-
Datei
Zahlenvergleich.c
Taste 5 { value =5; if (wert1 <=0x40) { _delay_ms(100); //Entprelle Taste loslassen } } if((wert1 >=0x5B) && (wert1 <0x79)) //Wertevergleich Taste 6 { value =6; if (wert1 <=0x5B) { _delay_ms(100); //Entprelle
in „Probleme bei Initialisierung und while Schleife“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
kofi.c
unsigned char // auch short oder long #define T0_NACHLADEWERT -39 // fuer ca. 100 Hz bei 4 MHz #define ENTPRELL_ZEIT 5 // 5 Zyklen -> 50ms entprellen #define FIRST_REPEAT 50 // 0,5 Sek. Pause bei gedrueckter Taste #define NEXT_REPEAT 10 // danach Wiederholung alle 0,1 Sek. static char taste; // 0 oder Tastencode
in „taster auf 2 arten abfragen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
garage0807.asm
zeit1,temp // breq licht_80s ldi temp,0x00 out portb,temp nop // in temp,pind // cp alt,temp // brne taster // ldi r30,low(taster_entprellen0) // ldi r31,high(taster_entprellen0) // add r30,zeit1 // icall rjmp licht_an taster_entprellen0: rjmp taster_entprellen1 rjmp taster_entprellen2 rjmp taster_entprellen3 rjmp taster_entprellen4 taster_entprellen1: ldi temp,1 out TCCR1B,temp ldi temp,0 out TCNT0,temp inc zeit1 sleep nop taster_entprellen2: sei ldi temp,1 out TCCR1B,temp ldi temp,0 out TCNT0,temp inc zeit1 sleep
in „Taser gedrückt LED soll leuchten“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Stopp-Uhr.asm
wird hier eingefügt .include "LCD-Routine.asm" ; LCD-Routinen werden hier eingefügt .include "entprellen.asm" ; Taster-Entprellen einfügen ;************************************************************************** /* Register definieren */ .def stopptaste = r10 .def neuerTaster = r11 .def alterTaster
in „probleme mit stoppuhr programm“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LED-Dimmen_2.asm
;...falls nicht springen... ; ;Eine Tasterbetaetigung wurde festgestellt. Taster entprellen, pruefen ob es ;ein gueltiger Taster ist und ob dieser Tastendruck Neu oder Alt ist. ; KeyActiv: inc Z_ENTPRELLEN ;...falls doch Zaehler Entprellen +1... KeyActiv2: cpi Z_ENTPRELLEN,W_TASTER
in „Wie generiere ich eine Pwm mit fester Frequenz aber variablem Tastverhältnis“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
taster.c
uint8_t *piML, uint16_t *pOBJS, uint8_t *pAIT, uint8_t *pAIL) { if (!(PINA & (1 << PINA0 ))){ // Taste 1 gedrückt _delay_ms(250); // Verzögerung - Tasten entprellen PORTD &= ~( 1 << PD6 ); // PortD Pin6 auf low - LCD-Display Beleuchtung an if (*pTS == 0){ *pTS = 10; set_cursor(0,1); lcd_string("Hauptmenue
in „AtMega 32 - LCD-Anzeige fällt ab“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
taster.a51
: LCALL TAST_IN ;TASTER + SCHALTER LESEN dec REP_COUNTER MOV A,INREG1 CJNE A,INREG2,NEU_ENTPRELLEN MOV A,INREG1+1 CJNE A,INREG2+1,NEU_ENTPRELLEN INC ENTPRELLCTR MOV A,ENTPRELLCTR CLR C SUBB A,#ENTPRELLZEIT ;ZEIT VORBEI ? JC GET_TAST_END ;WARTEN LCALL DECODE NEU_ENTPRELLEN: MOV ENTPRELLCTR,#0 ;LOESCHEN MOV INREG2,INREG1 ;UND WERTE UMSCHAUFELN MOV INREG2+1,INREG1+1 GET_TAST_END: RET end
-
PDF
Blinkl_An_Aus_Taster171114.pdf
Standard-Bibliotheken, dann eigene Bibliotheken #include <util/delay.h> //# include "G:\Mikroprogs\6.2\Eig_header\Entprell-header.h" // Entprellheader Taster # include "G:\Mikroprogs\6.2\Eig_header\LED_blinken.h" //############################################################### // Entprell-header; Ziel ist einbindung
in „Einlesen von Tastern mit Entprellheader“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Entprell.c
ISR(TIMER0_COMPA_vect) // 1ms Timerinterrupt (Tinyx61) { static uint8_t shift_T1, shift_T2, cnt; cnt++; // Ergebnis taste1, taste2 global, volatile if (cnt&0x01) // alle 2ms Tastenentprellung; macht 16ms best case { shift_T1 <<= 1; shift_T2 <<= 1; // Um eine Stelle nach links schieben shift_T1 |= PINB & (1<<PINB1); shift_T2 |= PINB & (1<<PINB2); // Taste lesen und Bit 0 setzen oder eben nicht, je nach Tastenzustand // Erfolgreich, wenn shift_Tx entweder 0x00 oder 0xFF enthält, also 8 mal hintereinander der selbe Wert gelesen wird. // Sonst bleibt der alte Zustand erhalten. // Nachbildung eines 8Bit-Schieberegisters
in „PCINT0 für Taster und LEDs am selben Port betreiben“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
lcd.asm
;solange Taste noch gedrückt warten rcall wait ;dann entprellen rjmp loop ;wieder ganz von vorne teil2: rcall wait ;entprellen sbic PINB,2 ;wenn Eingang wieder 1 rjmp taster ;zurück zu taster inc stand2 ;ansonsten erhöhe Stand2 teil2a: sbis PINB,2 rjmp teil0a ;solange Taste noch gedrückt warten rcall wait ;dann entprellen rjmp loop ;wieder ganz von vorne teil3: rcall wait ;entprellen sbic PINB,3 ;wenn Eingang wieder 1 rjmp taster ;zurück zu taster dec stand2 ;ansonsten
in „LCD zeigt Hieroglyphen“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
taster_entprellen_-_upload.pdf
Registers) bei loslassen der Taste gelöscht Alternativer 3. Durchlauf bei 1. Durchlauf bei Gedrücktem Taster 2. Durchlauf bei Gedrücktem 3. Durchlauf bei Gedrücktem 4. Durchlauf bei Gedrücktem nicht gedrücktem Taster durch Taster Taster
in „Schema Taster entprellen nach Dannegger“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
entprellen.c
/* Tasten an PC2-PC5 */ SIGNAL (SIG_OVERFLOW0) // alle ca. 10ms Interrupt { TIMSK &= 0xfd; // To-Overflow verbieten sei(); getkey(); TCNT0 = T0_NACHLADEWERT; TIMSK |= 0x02; } static void getkey(void) { if(toggle > 0) // toggeln = taste ist gedrückt geblieben, ca 350ms warten { // und dann den wert übernehmen toggle--; key_press_old=0; return; } if (x.Statusbit_7 == 0) { key = TASTEN_PORT; key |= 0xC3; //Bits 7,6,2,0 ausmaskieren
in „Entprellen“ · Projekte & Code ·
-
Datei
TransponderArduino.ino
Empfangen2 = ""; digitalWrite(A_Steckdose, AUS); } else if (Empfangen == "F0") { LichtFehler = 0; } //StopTaster enprellen spätere erkennung if (digitalRead(T_KarusellStop) == Gedrueckt) { A++; if (EntprellenStopTaster < 50000) EntprellenStopTaster++; } else { B++; EntprellenStopTaster = 0; } if (EntprellenStopTaster > f_Entprellengross && EntprellenStopTaster != 60000) { EntprellenStopTaster = 60000; //das die aktion nicht 2 mal ausgeführt wird, muss wieder 0 werden if (Var_KarusellStopAlt == 1) { C++; digitalWrite(LED_BUILTIN, EIN); Var_KarusellStop
in „Arduino Mega für Programm nicht richtig aus“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Lauflicht.c
{} // Entprellen do{ }while(taste2() == 0); for(i = 0; i<= 70000;i++){} Rechtslauf(); } if(taste3() == 0) { for(i = 0; i<= 70000;i++){} // Entprellen do{ }while(taste3() == 0); for(i = 0; i<= 70000;i++){} break;
in „Lauflicht mit LPC1769“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
menue.h
) | (1<<PC3); _delay_ms(1); if (entprell(&PINC, PC0)) // Auslesen von Tasten S1 { S1 = true; // Taster S1 gedrückt } if (entprell(&PINC, PC1)) // Auslesen von Tasten S2 { S2 = true; // Taster S2 gedrückt } else S2 = false; if (entprell(&PINC, PC2)) // Auslesen von Tasten S3 { S3 = true; // Taster S3 gedrückt } else S3 = false; if (entprell(&PINC, PC3)) // Auslesen von Taste S4 { S4 = true; } else S4 = false; // Umstellung auf Display (Pullups deaktivieren, Ausgang)
in „Probleme bei der Stueuerung über Taster!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
moodlight3.asm
mode5 i0service: ; Interrupt-Routine für Moduswahl in intres,sreg ; Statusregister retten rcall entprell ; springe zur Taster-Entprell-Routine ldi modechange,0x01 ; Bit für Moduswahl-Interrupt setzen out sreg,intres reti ; Interrupt beenden und für neue freigeben i1service: ; Interrupt-Routine für Frequenzwahl
in „LEDs des STK-500 leuchten nicht, obwohl User Guide gelesen!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
entprellen_sleep.c
#include<avr/io.h> #include<avr/sleep.h> #include<avr/interrupt.h> #include <stdio.h> #include <inttypes.h> typedef unsigned char u8; typedef signed short s16; #define FOSC 14745600 //Clock Speed #define BAUD 9600 #define UBRR ((FOSC / (BAUD * 16L)) - 1) #define XTAL 1e6 // 1MHz #define KEY_PIN PIND #define KEY0 0 #define KEY1 1 #define KEY2 2 #define KEY3 3 #define KEY4 4 #define LED_DDR DDRB #define LED_PORT PORTB #define LED0 0 #define LED1 1 #define LED2 2 #define LED3 3 #define LED4 4 //#define REPEAT_MASK (1<<KEY1^1<<KEY2) // repeat: key1, key2 #define REPEAT_START 50 // after 500ms #define
in „Power Down Mode über Taster“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
moodlight5.asm
mode5 i0service: ; Interrupt-Routine für Moduswahl in intres,sreg ; Statusregister retten rcall entprell ; springe zur Taster-Entprell-Routine ldi modechange,0x01 ; Bit für Moduswahl-Interrupt setzen out sreg,intres reti ; Interrupt beenden und für neue freigeben pause: ; Einleiten der Pausenschleife
in „ATtiny12 läuft nicht an und...“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Entprellen_Lux.asm
.include "Label.inc" ; clr tfl ;TasterFlaggen nicht gesetzt clr tas ;TAsterStatus Grundzustand => High = losgelassen ldi tmp,$FF ;Wegen immediate Zugriff muss es ein Register >r15 sein mov tz0,tmp ;Bereits vor dem Einschalten bzw. RESET, gedrückte Taste.. mov tz1,tz0 ;.. nicht unentprellt durchgehen lassen. ldi tmp,alltast ;Maske der benoetigten Taster.. out KEY_PORT,tmp ;.. nutzen, um Pull-Up Widerstaende einzuschalten. Tastenabfrage: ;Entprell-Algorithmus
in „Universelle Tastenabfrage nach PeDa in AVR Assembler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PicoTerm-demo.ino
SCHRIFT_HOEHE 16 #define MAX_X 480 #define MAX_Y 272 #define ESC 27 #define LF 10 #define CR 13 #define NEUE_TASTE 1 // neue Taste erkannt #define REPEAT_TASTE 2 // repeat-Taste #define ENTPRELL_ZEIT_TFT 2 // fuer TFT-Touch #define FIRST_REPEAT 50 // nach 0,5 Sekunden #define NEXT_REPEAT 10 // alle 0,10 Sekunden
in „PicoTerm-TFT, farbiges 4,3"-Terminal mit Pico-Board RP2040“ · Projekte & Code ·
-
Datei
moodlight6.asm
mode5 i0service: ; Interrupt-Routine für Moduswahl in intres,sreg ; Statusregister retten rcall entprell ; springe zur Taster-Entprell-Routine ldi modechange,0x01 ; Bit für Moduswahl-Interrupt setzen out sreg,intres reti ; Interrupt beenden und für neue freigeben pause: ; Einleiten der Pausenschleife
in „Probleme mit ATtiny12“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
ONTIME 5 //wie lange die Zeit gezeigt wird in sekunden (< 30) #define DBTIME0 40 //Entprellzeit Taster0 in (1/(F_CPU/1000))*1024 ms (with 8000000UL: 0,128ms) <256 #define DBTIME1 40 //Entprellzeit Taster1 in (1/(F_CPU/1000))*1024 ms (with 8000000UL: 0,128ms) <256 /** * *INT0: on/off/mode * *INT1: inkrementiere
in „Uhr mit quarz, Atmega48 und AVRC“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
/* Projekt: Tasten-Entpreller uC: ATMEL ATtiny85 (8-pin) Autor: fb Erstellt: 10.12.15 Letzte Änderung: 14.12.15 _______________________________________________________________________________ */ /* Beschreibung: Macro
in „uC >>> Tastenentprellung via Macro“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
FlankenErkennenUndZaehlenPortD.ino
t>; EingabeTaster taster; EntprellTimer entprellen(20); FlankenErkennung flankenerkennung; Counter counter; void setup() { Serial.begin(9600); taster.initPullup(); DDRD = 0xff; } void loop() { PORTD = counter = flankenerkennung = entprellen = taster; }
in „delay Funktion mit IRS ersetzen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
spannung_var_stell=0; volatile int8_t adc_mux,adc_i=0; volatile uint8_t mode=0; volatile uint8_t Tasten_input[Tasten_bufferlength]; volatile uint8_t Tast_write=0,entprellen=0; volatile uint8_t fuse=0,overload=0; static void adc_init(void); uint16_t ReadChannel(uint8_t mux); static void avr_init(void)
in „Atmega16 stürzt ab?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ENTPRELL.LST
---------------------------------------------------------------------------- void entprell(void) { status = ((status<<1) | (!bit_is_clear(PIND,PIND0)) | 0xe000); 5c: 80 91 63 00 lds r24, 0x0063 60: 90 91 64 00 lds r25, 0x0064 64: 88 0f add r24, r24 66: 99 1f adc r25, r25 68: 20 b3 in r18
-
Datei
FlankenErkennenLangKurz.ino
CombieTimer.h> #include <CombieTools.h> using Combie::Tools::FlankenErkennung; using Combie::Timer::EntprellTimer; using Combie::Timer::RisingEdgeTimer; using EingabeTaster = Combie::Pin::TasterGND<2>; // Taster zwischen Pin und GND(invertierend) EingabeTaster taster; EntprellTimer entprellen(20); RisingEdgeTimer
in „Long Button Press“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
bis6.ino
; Counter counter; Taster taster; OutPin outPin; Combie::Timer::EntprellTimer entprell {20_MilliSekunden}; Combie::Tools::FlankenErkennung flankenerkennung; Combie::Timer::FallingEdgeTimer toff {1.5_Sekunden}; // abfallende
in „Monostufe mit Retrigger für Arduino“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Entprell_Flanken.h
// Taste GEHALTEN Zustand = 2; ET = 0; } else if (Zustand == 2 && (TASTERPORT & (1<<TASTERBIT))) { // Taste LOSLASSEN (fallende Flanke) Zustand = 3; ET = 0; } else if (Zustand == 3 && (TASTERPORT & (1<<TASTERBIT))) { // Taste LOSGELASSEN Zustand = 0; ET = 0; } return 0; // Rueckgabe des entprellten Signals }
in „Frage zu Afängerfehler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
rm01.asm
ms lang ;anliegen, damit es akzeptiert wird: sbrc merker,neu10ms ;sind 10 ms um? - nein... rjmp entprell ;ja, Eingänge entprellen... ;UART-TX nicht starten, solange noch TX läuft: sbrc merker,txakt ;ist UART-TX noch aktiv? - nein... rjmp mainloop1 ;ja, weiter... ;Es läuft derzeit kein UART-TX, also prüfen
in „Bitwackeln mit USB to Seriell Wandler (Schnelligkeit)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Interrupt.ino
Lichtprogramme volatile int ledStatus = LOW; // aktueller Zusatnd der LED volatile int entprellZeit = 1000000; // Zeit für Entprellung, anpassen! unsigned long tasterZeit = 0; // Zeit beim drücken des Tasters unsigned long ledMillis = 0; // Zeit für den Blinkrythmus der LED volatile bool TasterStatus
in „LED mit Taster ansteuern und Interrupt einfügen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Stopp-Uhr.asm
wird hier eingefügt .include "LCD-Routine.asm" ; LCD-Routinen werden hier eingefügt .include "entprellen.asm" ; Taster-Entprellen einfügen ;************************************************************************** /* Register definieren */ .def neuerTaster = r11 .def alterTaster = r12 .def sicherung
in „probleme mit stoppuhr programm“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
DTMF01.asm
Ziffer 4 (neueste, zuletzt eingegebene) .def tmp=r16 ;Kurzzeit-Temp, ungesichert (LCD) .def tfl=r17 ;Tasten-Flags (melden Tastendruck) .def zvt=r18 ;Zeitvorteiler von 10ms auf 1s .def tout=r19 ;Timeout für bereits eingegebene Ziffern .def flags=r23 ;einige Steuerflags .equ entprell=7 ;Flag für Entprellung
in „mit Atmega48 MT 8870 auwerten“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
blink_n_tast.c
/* ------------- blink_n_tast.c ------------------ eine blinkende Leuchtdiode ist das "Hallo Welt" Programm in der Microcontrollerwelt. Hier in der "Luxusvariante" mit einem Taster. Die "Tasterklicks" werden gezaehlt und geht nach
in „LED nach x Testenschlägen x mal blinken lassen (x = variabel)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
AchtfachRelaisSchalten.ino
public: virtual void init() = 0; virtual void run() = 0; }; template<byte inPin,byte outPin> class Taster2Relais: public Task { private: Combie::Pin::TasterGND<inPin> taster; Combie::Pin::RelaisINV<outPin> relais; Combie::Timer::EntprellTimer entpreller; Combie::Tools::FlankenErkennung flankenerkennung; public: virtual void init() { taster.initPullup(); relais.init(); } virtual void run() { if(flankenerkennung = entpreller = taster) relais.toggle(); } }; Task * tasks[] = { new Taster2Relais<2,10>(), new Taster2Relais<3,11>(), new Taster2Relais
in „statische Polymorphie per CRTP in Embedded Systemen“ · Mikrocontroller und Digitale Elektronik ·