1 | int main (void)
|
2 | {
|
3 | int sek = 0;
|
4 | int min = 0;
|
5 | int stunde=0;
|
6 | // int i=0;
|
7 | int statusUp = 0;
|
8 | int statusDown = 0;
|
9 |
|
10 |
|
11 | char ausgabe[50];
|
12 |
|
13 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); // port f enablen
|
14 | SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); // port e enablen
|
15 |
|
16 | GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1); //Configures PIN0, PORTF for use as GPIO input --> Up- und Down-Taster
|
17 |
|
18 | GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //Aktiviert Pull-Up Widerstand für Select Taster
|
19 | GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 , GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //Aktiviert Pull-Up Widerstand für Up- und Down-Taster
|
20 |
|
21 |
|
22 | GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1); //Setze den PIN_1(Select-Button) als Input
|
23 | GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
|
24 |
|
25 |
|
26 | RIT128x96x4Init(1000000); //SPI-Takt
|
27 |
|
28 | //Set the clocking
|
29 | SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
|
30 | // Peripherie aktivieren (Timermodul 0,GPIOs)
|
31 | SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
|
32 | //Timermodul 0 als periodischer 32-Bit Timer konfigurieren
|
33 | TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER);
|
34 | //Timervorladewert für Ablauf nach 1 Sekunde bei 8MHz-Takt fixieren
|
35 | TimerLoadSet(TIMER0_BASE, TIMER_A, 8000000) ;
|
36 | //Timer A des Timer0 freigeben
|
37 | TimerEnable(TIMER0_BASE, TIMER_A);
|
38 |
|
39 | while(1)
|
40 | {
|
41 | while (TimerIntStatus(TIMER0_BASE,false) != TIMER_TIMA_TIMEOUT);
|
42 | //warten, bis Timer A des Timermodul 0 den Wert 0 erreicht hat
|
43 |
|
44 | TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); // Flag löschen
|
45 | sek++; // Sekundenzähler erhöhen
|
46 |
|
47 | // Stoppen
|
48 | if((GPIOPinRead(GPIO_PORTE_BASE, GPIO_PIN_0) == 0) && (statusUp == 0))
|
49 | {
|
50 | // TimerDisable(TIMER0_BASE, TIMER_A); // Timer stoppen
|
51 | TimerDisable(TIMER0_BASE, TIMER_A);
|
52 | statusUp = 1;
|
53 | }
|
54 | else if(GPIOPinRead(GPIO_PORTE_BASE, GPIO_PIN_0)!= 0) // wenn taster losgelassen wird
|
55 | {
|
56 | statusUp=0;
|
57 | }
|
58 |
|
59 | // wieder starten
|
60 | if((GPIOPinRead(GPIO_PORTE_BASE, GPIO_PIN_1) == 0) && (statusDown == 0))
|
61 | {
|
62 | // TimerDisable(TIMER0_BASE, TIMER_A); // Timer stoppen
|
63 | TimerEnable(TIMER0_BASE, TIMER_A);
|
64 | statusDown= 1;
|
65 | }
|
66 | else if(GPIOPinRead(GPIO_PORTE_BASE, GPIO_PIN_0)!= 0) // wenn taster losgelassen wird
|
67 | {
|
68 | statusDown=0;
|
69 | }
|
70 |
|
71 | if(sek == 60) // Wenn sekunde = 60 ==> 1 Minute
|
72 | {
|
73 | sek=0;
|
74 | min++;
|
75 | }
|
76 | if(min == 60) // Wenn minute = 60 ==> 1 Stunde
|
77 | {
|
78 | min=0;
|
79 | stunde++;
|
80 | }
|
81 | if(stunde == 24)
|
82 | {
|
83 | sek=0;
|
84 | min=0;
|
85 | stunde=0;
|
86 | }
|
87 | sprintf(ausgabe, "Zeit : %02i:%02i:%02i",stunde,min,sek); // Stunde, Minute und Sekunde in String konvertieren
|
88 | RIT128x96x4StringDraw(ausgabe, 10, 24, 15);
|
89 |
|
90 |
|
91 | }
|
92 | }
|