Hallo,
ich habe zwei 7 Segment Anzeigen, die ich per Tastendruck hochzählen
lasse, funktioniert auch alles soweit ganz gut. Nun möchte ich die
"hochzählenFunktion" gerne auslagern, mit hochzaehlen.h und
hochzaehlen.c.
Folgendes habe ich probiert, leider funktioniert es mit meinem
PIC16F1937 und dem Taster nicht.
hier die main.c:
1 | int einersekunde=1 ;
|
2 | int zehnersekunde=1;
|
3 | int startwerteiner=0;
|
4 | int startwertzehner=0;
|
5 | #include "mcc_generated_files/mcc.h"
|
6 | #include "hochzaehlen.h"
|
7 | ...//alle weiteren #includes sind natürlich vorhanden
|
8 | ...
|
9 |
|
10 | while (1)
|
11 | {
|
12 | while (PORTCbits.RC1==1)
|
13 | {
|
14 | AnzeigeEiner(einersekunde);
|
15 | AnzeigeZehner(zehnersekunde);
|
16 | if(!Taster1_GetValue())
|
17 | {
|
18 | __delay_ms(200);
|
19 | hochzaehlen(); //hier rufe ich die Funktion auf
|
20 |
|
21 | startwerteiner=einersekunde;
|
22 | startwertzehner=zehnersekunde;
|
23 | }
|
24 | ....//usw.
|
hier meine hochzaehlen.h:
1 | void hochzaehlen (int einersekunde, int zehnersekunde);
|
und hier die hochzaehlen.c:
1 | #include "mcc_generated_files/pin_manager.h"
|
2 |
|
3 |
|
4 |
|
5 | void hochzaehlen(int einersekunde, int zehnersekunde)
|
6 | {
|
7 | einersekunde++;
|
8 | if(einersekunde==11)
|
9 | {
|
10 | einersekunde=1;
|
11 | zehnersekunde++;
|
12 | if(zehnersekunde==10)
|
13 | {
|
14 | einersekunde=1;
|
15 | zehnersekunde=1;
|
16 | }
|
17 | }
|
18 |
|
19 | }
|
Dass man mehrere Rückgabewerte über Zeiger auf die jeweiligen Adressen
zurückgeben kann, ist mir bekannt. Leider weiß ich nicht, wie ich das
hier anwenden kann, da ich ja eigentlich nichts zurückgeben muss oder?
Jemand eine Idee wie sich die Auslagerung realisieren lässt?
Ich arbeite mit MPLAB v.3.6.
LG
totem