59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
|
/*
|
|||
|
* EmbeddedSystemProject.c
|
|||
|
*
|
|||
|
* Created: 21/10/2021 16:55:21
|
|||
|
* Author : n0x
|
|||
|
*/
|
|||
|
|
|||
|
#include "Led.h"
|
|||
|
#include "Taster.h"
|
|||
|
#include <util/delay.h>
|
|||
|
#ifdef F_CPU
|
|||
|
#define F_CPU 1000000
|
|||
|
#endif
|
|||
|
|
|||
|
int main(void)
|
|||
|
{
|
|||
|
// Initialize the LEDs and Buttons
|
|||
|
Led_init();
|
|||
|
Taster_init();
|
|||
|
|
|||
|
|
|||
|
int counter = 0;
|
|||
|
|
|||
|
while (1)
|
|||
|
{
|
|||
|
_delay_ms(50);
|
|||
|
|
|||
|
/* Programmieren Sie ein Lauflicht. Nutzen Sie dazu die in <20>Led.h<> deklarierten
|
|||
|
* Funktionen.
|
|||
|
* 2.Schreiben Sie ein Programm mit folgenden Funktionen:
|
|||
|
* Wenn Taste 1 gedr<EFBFBD>ckt wird, wird die Variable <EFBFBD>Counter<EFBFBD> inkrementiert.
|
|||
|
* Wird Taste 2 gedr<EFBFBD>ckt wird, wird die Variable <EFBFBD>Counter<EFBFBD> dekrementiert.
|
|||
|
* Variable <EFBFBD>Counter<EFBFBD> soll sich dabei zwischen 0 und 8 bewegen.
|
|||
|
* Der Inhalt des Wertes soll mit Hilfe der LEDs angezeigt werden.
|
|||
|
* 0 = keine LED an, 1 = LED1 an, 2 = LED1+LED2 an, usw.
|
|||
|
* 8 = alle LEDs an.
|
|||
|
*/
|
|||
|
|
|||
|
// Check if counter needs to be incremented
|
|||
|
if (Taster1_get()) counter++;
|
|||
|
|
|||
|
// Check if counter needs to be decremented
|
|||
|
if (Taster2_get()) counter--;
|
|||
|
|
|||
|
// Keep counter within boundaries (0-8)
|
|||
|
counter = (counter + 9) % 9;
|
|||
|
|
|||
|
// Set the LEDs according to the counter
|
|||
|
counter >= 1 ? Led1_On() : Led1_Off();
|
|||
|
counter >= 2 ? Led2_On() : Led2_Off();
|
|||
|
counter >= 3 ? Led3_On() : Led3_Off();
|
|||
|
counter >= 4 ? Led4_On() : Led4_Off();
|
|||
|
counter >= 5 ? Led5_On() : Led5_Off();
|
|||
|
counter >= 6 ? Led6_On() : Led6_Off();
|
|||
|
counter >= 7 ? Led7_On() : Led7_Off();
|
|||
|
counter >= 8 ? Led8_On() : Led8_Off();
|
|||
|
}
|
|||
|
}
|