-
Datei
taster.c
PORTD = 0b00001100; // Pullup } void ExtIrq_Init(void) { // MCUCR |= (1<<ISC01) | (1<<ISC00); // Taster gegen GND ist einfacher da der ATmega interne PullUps hat GICR |= (1<<INT0); // External Interrupt Request 0 Enable } ISR(INT0_vect) // Taster an PD2!! mit Widerstand gegen GND { // ... ; PORTB ^= (1 << PB0); // LED toggeln _delay_ms(200); //einfache Lösung zum entprellen des Tasters } int main() { Ports_Init(); ExtIrq_Init(); sei(); // Interrupt aktivieren while(1){} }
in „Problem mit Interrupt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
termstat.asm
;Tasten-Wiederhol-Flags .def twz=r19 ;Tasten-Wiederhol-Zähler .def mp=r20 ;Menüpunkt .def sperre=r21 ;LCD-Sperre (Zähler) .def flags=r22 ;einige Steuerflags .equ entprell=7 ;Flag für Entprellung der Tasten
in „Pollin LCD1602 keine Anzeige“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
termstat.asm
;Tasten-Wiederhol-Flags .def twz=r19 ;Tasten-Wiederhol-Zähler .def mp=r20 ;Menüpunkt .def sperre=r21 ;LCD-Sperre (Zähler) .def flags=r22 ;einige Steuerflags .equ entprell=7 ;Flag für Entprellung der Tasten
in „PWM zur Tonausgabe auf einem Lautsprecher Mega8“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
eieruhr1.asm
entprell: ;Taste entprellen cp wl,scan ;neue Taste = alte Taste? brne entprell1 ;nein... inc flags ;ja, Prellzähler hoch, erreicht er 4 (5 mal ;identisch), kümmert sich die Mainloop darum rjmp mainloop ;fertig... entprell1: ;neue Taste anders als vorher mov scan,wl ;übernehmen cbr flags,3 ;Prellzähler löschen rjmp mainloop ;fertig... ;Tastenabfrage und Entprellung ist nun fertig, eine neue Taste wird dem ;Hauptprogramm
in „Taster Entprellen (gleichzeitige Abfrage)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
eieruhr1.asm
entprell: ;Taste entprellen cp wl,scan ;neue Taste = alte Taste? brne entprell1 ;nein... inc flags ;ja, Prellzähler hoch, erreicht er 4 (5 mal ;identisch), kümmert sich die Mainloop darum rjmp mainloop ;fertig... entprell1: ;neue Taste anders als vorher mov scan,wl ;übernehmen cbr flags,3 ;Prellzähler löschen rjmp mainloop ;fertig... ;Tastenabfrage und Entprellung ist nun fertig, eine neue Taste wird dem ;Hauptprogramm
in „7 Segmentanzeige falsch eingekauft, reagiert nur auf low.“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
eieruhr1.asm
entprell: ;Taste entprellen cp wl,scan ;neue Taste = alte Taste? brne entprell1 ;nein... inc flags ;ja, Prellzähler hoch, erreicht er 4 (5 mal ;identisch), kümmert sich die Mainloop darum rjmp mainloop ;fertig... entprell1: ;neue Taste anders als vorher mov scan,wl ;übernehmen cbr flags,3 ;Prellzähler löschen rjmp mainloop ;fertig... ;Tastenabfrage und Entprellung ist nun fertig, eine neue Taste wird dem ;Hauptprogramm
in „Assembler-Kode Optimierung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Tasten_entprellen_v1.c
/* * Tasten_entprellen_v1.c * * Created: 14.11.2012 19:58:23 * Author: Developer */ /************************************************************************/ /* */ /* Debouncing 8 Keys */ /* Sampling 4 Times
in „PeDa Entprellung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Tasten_entprellen_v1.c
/* * Tasten_entprellen_v1.c * * Created: 14.11.2012 19:58:23 * Author: Developer */ /************************************************************************/ /* */ /* Debouncing 8 Keys */ /* Sampling 4 Times
in „Programmteile in .c und .h auslagern“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
init.txt
ausgeloest .equ handschuss=5 ;Schuss wurde von Hand ausgeloest .equ dgschuss=6 ;Drehgeber-Schuss .equ entprell=7 ;Tasten müssen entprellt werden .def wl=r24 ;Working L .def wh=r25 ;Working H .macro printsnr ;Schussnummer ausgeben push xl ;verwendete Register sichern mov xl,@0 ;Kopie vom Quellregister rcall
in „atmega 8 als schnitstelle“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
AVRGCC5.c
() { if (!(PINB & (1<<TASTER_M))) // Taster gedrückt? (durch Tasterdruck wird PC0 auf Masse gezogen ) { _delay_ms(50); // Taster entprellen taster_m++; if (taster_m==62) taster_m=0; } if (!(PINB & (1<<TASTER_S))) { _delay_ms(100); // Taster entprellen taster_s++; if (taster_s==24) taster_s=0; } }
in „Digitaluhr bleibt plötzlich stehen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Stoppuhr_test.c
); lcd_string(" Version 1.0 "); lcd_warte(4000); lcd_setcursor( 0, 1 ); lcd_string (" Warte auf Taster um Wert einzustellen "); lcd_setcursor( 0, 2 ); lcd_string (" T1= Start T2= Stopp T3= Reset "); for (;;) { if ((PINA&0x3f)!=0x3f) // Warte auf beliebigen Taster { warte(10); // Entprellen if ((PINA
in „Stoppuhr für ATmega16“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
50Hz_Uhr.asm
segment*2) add ZL, temp lpm temp, Z out PORTA, temp sbi PORTB, 5 nop nop nop cbi PORTB, 5 rcall pause ;Tasten entprellen exitmm: sbis PINC, 0 ;SET Minuten Taste losgelassen ? rjmp timesetmm rcall pause ;Taste entprellen ldi temp, 0xCE ;Startwert für Couter 0 out TCNT0, temp ldi ss, 0 ;Sekunden auf 0 stellen
-
Datei
8_Taster_2.asm
mit 8 Bytes für Impulsdauer-TimeOut-Zähler ;Variablen in Registern: .def tz0=r2 ;Tasten-Prellzähler Bit0 .def tz1=r3 ;Tasten-Prellzähler Bit1 .def tas=r4 ;Tastenstatus (gültig) .def tmp=r22 ;temporär .def tfl=r23 ;Tasten-Flags (melden Tastendruck) .def wl=r24 ;Working L .def wh=r25 ;Working
in „Schalter zu Taster“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
beispiel.txt
timsk, r16 ldi r17,$1 ldi r18,$32 clr r19 START: ;---Hauptprogramm--- PIN0: sbis pinb, pinb0 ;wenn Taste gedrückt rjmp TASTE ;Goto Taste PIN1: andi r19,254 sbis pinb,pinb1 ;wenn LEISTE rcall LEISTE ;Goto LEISTE rjmp START ;else Goto START TASTE: ;Prozedur zur Tastenabfrage rcall WAIT ;Warteschleife zum Entprellen rcall WAIT ;Warteschleife zum Entprellen bst r19,0 brts ENDE ori r19,1 sbic pinb, pinb2 rjmp AUF_ENDE sbic pinb,pinb3 rjmp ZU_ENDE sbrs r19,2 rjmp AUF rjmp ZU AUF: ;Prozedur zum Öffnen des Tores
in „Mal wieder ne Hausaufgabe ^^“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
AT_Tast_LCD.asm
#0 SCHLEIFE_A: SCHLEIFE_I: NOP NOP NOP djnz R2,SCHLEIFE_I djnz R3,SCHLEIFE_A RET ;--------------Entprell Routine------------------------------------------------------------------- Entprell: acall WARTE ;Ist Taste betaetigt WARTEN clr EX0 ;Externen Interrupt INT0 sperren (P3.2) mov a,p1 ;Port in Akku
in „AT Keyboard auf LCD anzeigen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
TB_Taster_Encoder_V1.bas
------------------------------------------------------------------------------------- 'name : TB_Taster_Encoder_V1.bas 'date : 25.09.2008 'copyright : public domain 'micro : Mega8 'description : Bulletproof Tasten-Entprell-Routine in BASCOM ' Original in ASM von Peter Dannegger ' Encoder-Abfrage von
in „[Bascom-AVR]: Abfrage Panasonic Encoder - aaarrgggh“ · Projekte & Code ·
-
Datei
main.c
(void); void TimerA0 (void); void TimerA1 (void); void Ports (void); void INIT_TA2 (void); void Entprell(void); // Entprellen der Taster void Wobbel (void); // Funktionen zum Bedienen des MSP void System_Start(void); void System_Stop(void); void System_Err(void); // __________ Prototypen die in anderen
in „kein definiertes Verhalten in der ISR“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „Brücke zwischen Pin und LED herstellen - für zwei unterschiedliche Timer“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LEDWeiterschaltenCallback.ino
; using namespace Combie::Timer; using namespace Combie::Pin; using CounterType = Counter<byte>; TasterGND<2> taster; // Taster gegen GND geschaltet OutputPin<13> led1; OutputPin<12> led2; EntprellTimer entprellen(20); FlankenErkennung flankenerkennung; CounterType counter; void ledAction(CounterType
in „einfache und übersichtliche Flanken erkennung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LEDWeiterschaltenCallback.ino
; using namespace Combie::Timer; using namespace Combie::Pin; using CounterType = Counter<byte>; TasterGND<2> taster; // Taster gegen GND geschaltet OutputPin<13> led1; OutputPin<12> led2; EntprellTimer entprellen(20); FlankenErkennung flankenerkennung; CounterType counter; void ledAction(CounterType
in „PORT/Register Beschreibung in AVR“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
entprellen_part3.c
#include <avr/io.h> #include <avr/interrupt.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 LED_DDR DDRB #define LED_PORT PORTB #define LED0 0 #define LED1 1 #define LED2 2 #define LED3 3 //#define REPEAT_MASK (1<<KEY1^1<<KEY2) // repeat: key1, key2 #define REPEAT_START 50 // after 500ms #define REPEAT_NEXT 20 // every 200ms //Initialisierung AD-Wandler void ADC_wandlung(); //Initialisierung
in „Tasten entprellen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Entprellen_H_Luxx.txt
Tastenabfrage: ;Entprell-Algorithmus geklaut bei Peter Dannegger... ;die Tasten liegen auf den untern 4 Bits cbr flags,1<<upsync;Jobflag löschen (Routine läuft als Mainloop-Job) in tmp,tap ;Tastenport einlesen (gedrückt=L
in „Universelle Tastenabfrage nach PeDa in AVR Assembler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
________ void TimerB0 (void); void TimerA0 (void); void TimerA1 (void); void Ports (void); void Entprell(void); // Entprellen der Taster // Funktionen zum Bedienen des MSP void Ports (void); void System_Start(void); void System_Stop(void); void System_Err(void); // __________ Prototypen die in anderen
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
RFID_Tiny2313_U2770B.bas
Unterroutine Toggle Portb.6 ' Led 1 Zustand wechseln End If ' Ende der If-Abfrage Debounce Pind.4 , 1 , Taste1 , Sub ' Taste 1 entprellen; wenn gerdückt, zur Unterroutine "Taste1" springen Debounce Pind.5 , 1 , Taste2 , Sub ' Taste 2 entprellen; wenn gerdückt, zur Unterroutine "Taste2" springen Debounce Pind.6 , 1 , Taste3 , Sub ' Taste 3 entprellen; wenn gerdückt, zur Unterroutine "Taste3" springen Waitms 500 ' Warte 500 ms Loop ' Sprunganweisung zum Anfang Do-Schleife Taste1: ' Unterroutine "Taste1" Cls ' Lcd löschen
in „BASCOM Programm nach C übersetzen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
RFID_Tiny2313_U2770B.bas
Unterroutine Toggle Portb.6 ' Led 1 Zustand wechseln End If ' Ende der If-Abfrage Debounce Pind.4 , 1 , Taste1 , Sub ' Taste 1 entprellen; wenn gerdückt, zur Unterroutine "Taste1" springen Debounce Pind.5 , 1 , Taste2 , Sub ' Taste 2 entprellen; wenn gerdückt, zur Unterroutine "Taste2" springen Debounce Pind.6 , 1 , Taste3 , Sub ' Taste 3 entprellen; wenn gerdückt, zur Unterroutine "Taste3" springen Waitms 500 ' Warte 500 ms Loop ' Sprunganweisung zum Anfang Do-Schleife Taste1: ' Unterroutine "Taste1" Cls ' Lcd löschen
in „Pollin RFID Entwicklungsboard“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „Brücke zwischen Pin und LED herstellen - für zwei unterschiedliche Timer“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Alle Funktionen, welche im Programm verwendet werden //sind dem Compiler bekann zu machen. void Entprell(void); // Entprellen der Taster void Ports (void); // Initialisierung der Ports void TimerA1 (void); // Init des Timers A1 void TimerB0 (void); void INIT_TA2(void); void INIT_TA0(void); void Ausgabe_Pulsbreite
in „Moduswechsel durch gleichzeitiges Drücken beider Taster“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
________ void TimerB0 (void); void TimerA0 (void); void TimerA1 (void); void Ports (void); void Entprell(void); // Entprellen der Taster // Funktionen zum Bedienen des MSP void Ports (void); void System_Start(void); void System_Stop(void); void System_Err(void); // __________ Prototypen die in anderen
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
torsteuerung.bas
Unterroutine Toggle Portb.6 ' Led 1 Zustand wechseln End If ' Ende der If-Abfrage Debounce Pind.4 , 1 , Taste1 , Sub ' Taste 1 entprellen; wenn gerdückt, zur Unterroutine "Taste1" springen Debounce Pind.5 , 1 , Taste2 , Sub ' Taste 2 entprellen; wenn gerdückt, zur Unterroutine "Taste2" springen Debounce Pind.6 , 1 , Taste3 , Sub ' Taste 3 entprellen; wenn gerdückt, zur Unterroutine "Taste3" springen Waitms 500 ' Warte 500 ms Loop ' Sprunganweisung zum Anfang Do-Schleife Taste1: ' Unterroutine "Taste1" Cls ' Lcd löschen
in „Pollin RFID Entwicklungsboard“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
torsteuerung_2.bas
Unterroutine Toggle Portb.6 ' Led 1 Zustand wechseln End If ' Ende der If-Abfrage Debounce Pind.4 , 1 , Taste1 , Sub ' Taste 1 entprellen; wenn gerdückt, zur Unterroutine "Taste1" springen Debounce Pind.5 , 1 , Taste2 , Sub ' Taste 2 entprellen; wenn gerdückt, zur Unterroutine "Taste2" springen Debounce Pind.6 , 1 , Taste3 , Sub ' Taste 3 entprellen; wenn gerdückt, zur Unterroutine "Taste3" springen Waitms 500 ' Warte 500 ms Loop ' Sprunganweisung zum Anfang Do-Schleife Taste1: ' Unterroutine "Taste1" Cls ' Lcd löschen
in „Pollin RFID Entwicklungsboard“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
________ void TimerB0 (void); void TimerA0 (void); void TimerA1 (void); void Ports (void); void Entprell(void); // Entprellen der Taster // Funktionen zum Bedienen des MSP void Ports (void); void System_Start(void); void System_Stop(void); void System_Err(void); // __________ Prototypen die in anderen
in „Rote LED an Port 1.0 will nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
IO.c
include <avr/io.h> #include <util/delay.h> #include <stdint.h> #include <avr/interrupt.h> uint8_t Taster_entprellen(void) { uint8_t temp, Zustand; Zustand = ~IO_PIN; Zustand &= ((1<<TASTER_Obergrenze) | (1<<TASTER_Untergrenze)); _delay_ms(10); temp = ~IO_PIN; temp &= ((1<<TASTER_Obergrenze) | (1<<TASTER_Untergrenze)); if (temp == Zustand) return temp; else return 0; } uint8_t Taster_einlesen(void) { uint8_t Taster_Variable = Taster_entprellen(); //beide Taster if ((Taster_Variable == ((1<<TASTER_Untergrenze)|(1<<TASTER_Obergrenze))) && !(GlobalWertTaster & 1)) { _delay_ms(500)
in „Fehler im Unterprogramm - Verständnisfrage (Taster entprellen)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
countdown_timer_4x7_seg_06092016_mit_Leuchten_pausen..ino.ino
countFlag=true; brakeState=false;} else {countFlag=false; brakeState = true;} } /* if (change == HIGH) { tasterZeit = millis(); // aktualisiere tasterZeit tasterGedrueckt = 1; // speichert, dass Taster gedrückt wurde } // Wenn die gewählte entprellZeit vergangen ist und der Taster gedrückt war... if ((millis() - tasterZeit > entprellZeit) && tasterGedrueckt == 1) { // lichtmodus wird um +1 erhöht tasterGedrueckt = 0; // setzt gedrückten Taster zurück } */ //Control dot points //Control dot points if (setPoint==0)
in „Countdown timer“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Zahl.asm
1 rcall ausw ret BelegOGp1: subi temp9, -1 rcall ausw ret BelegOGm1: subi temp9, 1 rcall ausw ret tast1: ;taste 1 entprellen sbis PINC, PINC0 rjmp tast1 rcall delay5ms rcall delay5ms rcall msr16 tast11: sbic PINC, PINC0 rjmp tast11 rcall msr16 ret tast2: ;taste 2 entprellen sbis PINC, PINC1 rjmp tast2
in „Neuling braucht Hilfe(Tastenabfrage) ?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
/ Schrittrichtung // 0 : Rückwärts // 1 : Vorwärts unsigned int Freq [6]; int PBreite [6]; void Entprell(void); // Entprellen der Taster volatile unsigned int i = 3; void TimerB0 (void); void TimerA0 (void); void Wobbel (void); volatile unsigned int Saegezahn = 1; // Form des Signals // 0: Sinusförmig
in „kein definiertes Verhalten in der ISR“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
(void); void TimerA0 (void); void TimerA1 (void); void INIT_TA2 (void); void Ports (void); void Entprell(void); // Entprellen der Taster void Wobbel (void); // Funktionen zum Bedienen des MSP void System_Start(void); void System_Stop(void); void System_Err(void); // ___________ Globale Variablen ____
in „MSP430 F5529 Wobbel-Generator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
diagraf.inc
+24) ;auf Startwert cbr merker,1<<sync ;Sync-Merker erstmal löschen o1kurve1: sleep sbrc merker,entprell ;sind Taster/Drehgeber zu entprellen? - nein... rcall o1drehgeber ;ja, nebenbei mit erledigen... sbrs merker,neuadc ;neuer ADC-Wert da? - ja... rjmp o1kurve1 ;nein, warten... cbr merker,1<<neuadc
in „Assembler: Routine zum Löschen von Bildpunkten beim T6963C ges“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Stoppuhr.c
TCNT1 = 64286; //Preload setzen if (on_off == 1) { zaehler ++; } if (PIND == 0x01) // Begin der entprell Schleifen { on_off_entprell ++; } else { on_off_entprell = 0; } if (PIND == 0x02) { reset_entprell ++; } else { reset_entprell = 0; } // Ende der entprell Schleifen if (on_off_entprell == 5) //Wenn Taster als gedrückt erkannt: { if (on_off == 0) { on_off = 1; } else { on_off = 0; } // Stoppuhr ein- und ausschalten } if (reset_entprell == 5) { zaehler = 0; } // Stoppuhr resetten } int main (void) { /
in „Zehntel springt von 4 wieder auf 2. Warum?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
taster.txt
mov ad_1, temp1 ;ldi ad_1, 0x85 ;0b10000101 out ADCSR, ad_1 ;ADEN,ADPS2 und ADPS0 gesetzt main: d_taster: ldi wert, 0 ; Wert auf 0 setzten sbis PIND, taster ; Ist Taster gedrückt ? rjmp wert_inc_0 ; ja, springe rjmp main2 ; sonst raus... wert_inc_0: sei ; Interrupt enable rjmp wert_inc wert_inc: rcall
in „Interrupt-Vektoren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Untitled2.c
char xc); unsigned int Wobbel_Dir = 1; // Schrittrichtung // 0 : Rückwärts // 1 : Vorwärts void Entprell(void); // Entprellen der Taster unsigned int i = 3; unsigned int Saegezahn = 1; // Form des Signals // 0: Sinusförmig An- und Abschwellend // 1: Sägezahn, von i = Max auf i = 0 int main( void ) {
in „ISR Port wird nicht aufgerufen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
intTaste.h
/******************************************************************** intTaste.h - Tastenhandling mit Entprellem per Interrupt von Philipp Klostermann Dieser Code dient nur einer Erläuterung und wird auf eigene Gefahr verwendet. Möglicherweise funktioniert er nicht oder ist fehlerhaft
in „AVR Einstieg / Probleme mit Programm Interrupt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD_sheet1.c
Rücksprungadresse { //LCD-Menü Deklarationen und Definitionen: uint8_t pos1 = 0; show1(); do { if(EINGABE_TASTEN & (1<<RUNTER_TASTE)) //Wenn auf Runtertaste gedrückt wir dann: { _delay_ms(20); //entprellen if(pos1 < 3) pos1++; //zähle Position hoch } else if(EINGABE_TASTEN & (1<<RAUF_TASTE)) //Wenn Runtertaste
in „Display-Menü programmieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
TPS_UP.h
= dat + 1; // dat & 15, gib dat aus dat = dat & 15; PORTA = dat * 16 & 0xF0; } _delay_ms(40); // Taste entprellen loop_until_bit_is_set (PINB, S1); // Warte bis die Taste S1 nicht mehr gedrückt wird _delay_ms(40); // Taste entprellen } if (!(PINB & (1<<S2))) // wenn Taste S2 gedrückt wird verzweige
in „AVR TTiny 461 Pullup nicht aktiv?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD_sheet0.c
Rücksprungadresse { //LCD-Menü Deklarationen und Definitionen: uint8_t pos0 = 0; show0(); do { if(EINGABE_TASTEN & (1<<RUNTER_TASTE)) //Wenn auf Runtertaste gedrückt wir dann: { _delay_ms(20); //entprellen if(pos0 < 4) //POSITION wird nie überschritten pos0++; //zähle Position hoch } else if(EINGABE_TASTEN & (1<<RAUF_TASTE)) //Wenn Runtertaste gedrückt wird dann: { _delay_ms(20); //entprellen if(pos0 >= 0) //POSITION wird nie unterschritten pos0--; //zähle Position runter } //Im Endeffekt ist der Wertebereich von 0 bis
in „Display-Menü programmieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD_sheet0.c
Pages mit Rücksprungadresse { //LCD-Menü Deklarationen und Definitionen: show0(); do { if(EINGABE_TASTEN & (1<<RUNTER_TASTE)) //Wenn auf Runtertaste gedrückt wir dann: { _delay_ms(20); //entprellen if(pos0 < 5) //POSITION wird nie überschritten pos0++; //zähle Position hoch } else if(EINGABE_TASTEN & (1<<RAUF_TASTE)) //Wenn Runtertaste gedrückt wird dann: { _delay_ms(20); //entprellen if(pos0 > 0) //POSITION wird nie unterschritten pos0--; //zähle Position runter } //Im Endeffekt ist der Wertebereich von 1 bis
in „Display-Menü programmieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Text1.bas
Blinkzeit länger Declare Sub Sub4() 'blinkzeit kürzer '( Deklariert die Subs, um LCD zu bedienen, die Tasten abzufragen/entprellen und um abhängig vom derzeitigen Menü und gedrückter Taste die auszuführende Aktion (navigieren...blinkzeit kürzer) auszuwählen und das danach gültige Menü zu ermitteln/anzuzeigen
in „Menüstruktur unter Bascom“ · Mikrocontroller und Digitale Elektronik ·