Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Grundinitalisierung */
- #include <stdio.h> // Standard In-Output
- #include <avr/interrupt.h> // Interrupt
- /* Bezeichnungen */
- void ISR_Init ();
- void ADC_Init ();
- void Ports ();
- void LEDs (uint8_t zaehler);
- /* Deklaration */
- uint8_t zaehler;
- uint8_t merker1, merker2;
- /* Hauptprogramm */
- int main (void)
- {
- ISR_Init(); // Interrupt
- ADC_Init(); // ADC
- Ports(); // Ports
- // Zähleranzeige
- zaehler=0;
- merker1=0; // Speicher für Taster 2
- merker2=0; // Speicher für Taster 3
- // Zählerschleife
- while(1)
- {
- LEDs(zaehler);
- // Wenn PORTA,1 High bzw. Taster 2 betätigt wird... -> Hochzählen
- if (PINA&(1<<PIN1) && (merker1==0)) // ... Taster(Speicher) gedrückt
- {
- zaehler++;
- if (zaehler ==255) {zaehler=0;} // bis 255 -> dann wieder 0
- merker1 = 1; // ... Taster(Speicher) losgelassen
- }
- if (!(PINA&(1<<PIN1)) && (merker1==1))
- {merker1 = 0;}
- // Wenn PORTA,2 High bzw. Taster 3 betätigt wird... -> Hochzählen
- if (PINA&(1<<PIN2) && (merker2 == 0)) //... Taster(Speicher) gedrückt
- {
- zaehler++;
- if (zaehler ==255) {zaehler=0;} // bis 255 -> dann wieder 0
- merker2 = 1; // ... Taster(Speicher) losgelassen
- }
- if (!(PINA&(1<<PIN2)) && (merker2 == 1))
- {merker2 = 0;}
- // Wenn PORTA,0 High bzw. Taster 1 betätigt wird -> Zähler zurücksetzen
- if (PINA&(1<<PIN0))
- {zaehler = 0;}
- } // Ende while
- return 0;
- } // Ende main
- /* Sonstige Anweisungen */
- void LEDs(uint8_t zaehler)
- {
- PORTB=zaehler;
- }
- /* Initalisierungsanweisungen */
- // GIE deaktiviert
- void ISR_Init (void)
- {
- cli(); // Global Interrupt deaktiviert sei()=aktiviert
- }
- // ADC an Port A
- void ADC_Init (void)
- {
- ADCSRA |= (0<<ADEN); // ADC deaktiviert
- }
- /* Porteinstellungen */
- // Datenrichtungsregister: 0=Eingänge, 1=Ausgänge
- void Ports(void)
- {
- DDRA = 0b00000000; // Port A
- DDRB = 0b11111111; // Port B
- // DDRC = 0b00000000; // Port C
- // DDRD = 0b11111111; // Port D
- // Ausgänge auf 0=GND oder 1=HIGH (interne Pull-Ups)
- PORTA = (1<<PA0) | (1<<PA1) | (1<<PA2); // Taster
- // PORTB = // LEDs
- // PORTC =
- // PORTD =
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement