Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Software für Lampensimulator mit ATtiny2313
- // Version 1
- #include <avr/io.h>
- #include <stdlib.h>
- #include <util/delay.h>
- #define TRUE 1
- #define FALSE 0
- //Funktion zum Abfragen des Zustands des negierenden Tasters1
- int taster1(void)
- {
- if (PIND & (1<<PIND0))
- {
- return FALSE;
- }
- else
- {
- return TRUE;
- }
- }
- //Funktion zum Abfragen des Zustands des negierenden Tasters2
- int taster2(void)
- {
- if (PIND & (1<<PIND1))
- {
- return FALSE;
- }
- else
- {
- return TRUE;
- }
- }
- //Funktion zum Abfragen des Zustands des negierenden Tasters3
- int taster3(void)
- {
- if (PIND & (1<<PIND2))
- {
- return FALSE;
- }
- else
- {
- return TRUE;
- }
- }
- int main (void) {
- // Port B Pin0, Pin1, Pin2 auf Ausgang setzen
- DDRB |= (1 << PIN0) | (1 << PIN1) | (1 << PIN2);
- // Port D Pin0, Pin1 und Pin2 (Taster 1, 2 3) als Eingänge setzen
- DDRD &= ~((1 << PIN0) | (1 << PIN1) | (1 << PIN2));
- uint8_t taster1toggle = FALSE;
- uint8_t taster2toggle = FALSE;
- uint8_t taster3toggle = FALSE;
- uint8_t taster1_alt = FALSE;
- uint8_t taster2_alt = FALSE;
- uint8_t taster3_alt = FALSE;
- while (1)
- {
- if ((taster1()==TRUE) && (taster1_alt == FALSE))
- {
- if (taster1toggle==FALSE)
- {
- taster1toggle=TRUE;
- }
- else
- {
- taster1toggle=FALSE;
- }
- }
- taster1_alt=taster1();
- if (taster1toggle == TRUE)
- {
- PORTB |= (1<<PIN0); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
- }
- else
- {
- PORTB &= ~(1 << PIN0); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
- }
- if ((taster2()==TRUE) && (taster2_alt == FALSE))
- {
- if (taster2toggle==FALSE)
- {
- taster2toggle=TRUE;
- }
- else
- {
- taster2toggle=FALSE;
- }
- }
- taster2_alt=taster2();
- if (taster2toggle == TRUE)
- {
- PORTB |= (1<<PIN1); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
- }
- else
- {
- PORTB &= ~(1 << PIN1); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
- }
- if ((taster3()==TRUE) && (taster3_alt == FALSE))
- {
- if (taster3toggle==FALSE)
- {
- taster3toggle=TRUE;
- }
- else
- {
- taster3toggle=FALSE;
- }
- }
- taster3_alt=taster3();
- if (taster3toggle == TRUE)
- {
- PORTB |= (1<<PIN2); // einzelnes Bit setzen, ohne die anderen zu beeinflussen
- }
- else
- {
- PORTB &= ~(1 << PIN2); // einzelnes Bit löschen, ohne die anderen zu beeinflussen
- }
- _delay_ms(10);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement