Hallo,
ich versuche gerade mit einer Funktion mein Programm zu verschönern.
Das Gesamte Programm liest eine I2C RTC(PCF8583P) aus, deshalb verwende
ich die Bibliothek von Peter Fleury.
Die zwei ausgelesnen Bytes werden in diesen Variabeln gespeichert:
buff_sekunde
buff_minute
Nun hab ich mir gedach ich schreib mir eine Funktion
1 | uint8_t getsm (uint8_t ) {
|
2 | uint8_t zehn = 0 ;
|
3 |
|
4 |
|
5 |
|
6 | ergebnis = buff & 0b00001111; // maskieren der 1er Stelle
|
7 | zehn = buff & 0b01110000; // hier die 10er Stelle
|
8 | zehn = zehn >> 4 ; //um 4 Stellen zurückschieben für richtige Wertichkeit
|
9 | ergebnis = (ergebnis >> 4) * 10 + (ergebnis & 0x0F); // umwandeln von BDC in Binär
|
10 | ergebnis = ergebnis + zehn *10 ; //Gesamt Ergebnis
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | return (); // In der Klammer sollte die Rückgabevariable stehen
|
18 |
|
19 | };
|
Im "main" frage ich einefach das Ergbniss ab
1 | sekunde= getsm(buff_sekunde) ;
|
2 | minute= getsm(buff_minute);
|
Zu erwähnen ist noch, dass ich die Funktion in eine *.c Datei
ausgelagert habe. Aber ich weiß nicht wie die Variablen Übergabe
aussehen soll? Was soll ich in return() schreiben?
Vielen Danke wenn jemand so nett wäre und mich einwenig unterstützen
kann.
Ich lerne grade µC programmieren in C nur durch Tutorials. I2C und LCD
laufen schon mal die Uhr läuft auch schon =) Die komplette Uhr ist so zu
sagen mein Lehrnprojekt.