Menu zur Einstellung RTC per Fernbedienung

Gast #4020452
Lesenswert?

Rufus Τ. Firefly schrieb:
> - Was gehört in *.c-Dateien
> - Was gehött in *.h-Dateien

Es hadelt sich weniger um header-files, eher um ausgelagerte Teile der 
main.c.

Ich hatte hier überlegt, eine andere extension als *.h zu nehmen, z.B. 
*.u. Das ist aber daran gescheitert, dass notepad keine *.u Dateien 
kennt.

Es fehlt mir also eine extension, die von notepad und eclipse als code 
dargestellt wird.
Moderator Persönliche Seite #4020898
Lesenswert?

Ich habe mal gerade ins Zip reingeschaut.

Der TO möchte offenbar mit dem Code bei irgendeinem 
Verschlüsselungs-Wettbewerb teilnehmen. Das Zeug ist ziemlich unlesbar.

Was ich aber (aus dem wenig bis gar nicht dokumentierten) Code 
herauslesen konnte:

Es sind drei Dateien drin:

1. FB_globals.h:

Den globalen Variablen-Definitionen wird jeweils ein 'v' vorangestellt. 
Was soll das sein? Vielleicht volatile? Wo ist der typedef dafür?

2. FB_irMenu.h:

Weder geht daraus hervor, wie man die Menüstruktur aufbauen muss, noch 
wie man sie anwendet.

Es werden jede Menge numerische Konstanten verwendet, die nicht abhängig 
von F_CPU über den Präprozessor berechnet werden.

Es werden Funktionen wie Gui_DrawPoint() und andere aufgerufen, die 
überhaupt nicht definiert sind.

FB_RC5_64.h:

Es werden lcd_xxx()-Funktionen aufgerufen, die überhaupt nicht definiert 
sind.

Ich vermisse auch die RTC-Routinen für die offenbar verwendete DS1307.

Ausserdem geht das ganze Zeug durch keinen Compiler.

Frage an den TO: Was soll das? Damit kann man nix, aber auch gar nix 
anfangen.
Persönliche Seite #4020959
Lesenswert?

grundschüler schrieb:
> Es fehlt mir also eine extension, die von notepad und eclipse als code
> dargestellt wird.

Die heißt *.c

Du solltest keine eigenen Standards erfinden, wo Definitionen und 
Deklarationen abgelegt werden, sondern Dich an seit Jahrzehnten 
etablierten Konventionen orientieren.

Das gilt insbesondere, wenn Du Deine Erkenntnisse anderen Leuten zur 
Verfügung stellen möchtest -- neben der Programmiersprache gehören auch 
diese Konventionen zur Sprache, mit der wir uns hier unterhalten.

Dazu gehören auch Konventionen für Quelltextformatierung (auch wenn da 
individuelle Abweichungen noch am ehesten toleriert werden), 
Konventionen für Namensvergabe und Konventionen für die Kommentierung.

In Deinen Dateien erkenne ich nichts davon.
Gast #4021777
Lesenswert?

Frank M. schrieb:
> Frage an den TO: Was soll das? Damit kann man nix, aber auch gar nix
> anfangen.

ich dachte, dass der FB_RC5_64.h-code aus sich heraus verständlich ist. 
Ist er offenbar doch nicht.

Im Prinzip wird das empfangene IR-Commando übergeben.

Handelt es sich um die Taste fb_green, erfolgt der Eintritt in die 
RTC-menu-Schleife. Ausgewertet werden hier nur Pfeil-Tasten, Ziffern, ok 
und Abbruch.

Ein Array
kkdat[0] =hou/10;
kkdat[1] =hou%10;
kkdat[2] =min/10;
kkdat[3] =min%10;
kkdat[4] =WDY;
kkdat[5] =DAY/10;
kkdat[6] =DAY%10;
kkdat[7] =MON/10;
kkdat[8] =MON%10;
kkdat[9] =YEA/10;

speichert die RTC-Werte als Ziffern. Step bestimmt, welcher Wert auf dem 
LCD angezeigt wird. das Arrayfeld[step] kann dann jeweils modifiziert 
werden: Pfeil-o/Pfeil-u/Ziffer. Bei Ziffer wird step erhöht und der 
nächste RTC-Wert selektiert. Mit Pfeil-r/l wird 1x step vor- oder 
zurückgesprungen
Bei ok wird der aktuell auf dem Lcd angezeigte Wert gespeichert. Bei 
back erfolgt Abbruch.

Es ist also schlicht und einfach aber dennoch nützlich weil es für das 
Einstellen einer RTC meines Wissens nach keine bessere Lösung gibt.

Das ganze ist Teil eines etwas umfangreicheren Programms. Ich habe die 
Programmteile für FB/Twilcd/ds1820/ds1307 herausgezogen und für einen 
Atmega328/winavr compiliert.

Auf meinem M328 läuft es. Allerdings muss man natürlich die 
LCD-Funktionen anpassen, wenn mann kein TwiLcd hat.

F_IR
1
//#if (defined(_AVR_IOM328P_H_) )
2
#define F_IR        82//75//=>FCPU/100000/9
3
//F_IR so einstellen, dass tmp[1]/F_IR =10 ergibt
4
#define takt_timer    31
5
//#endif

F_IR muss per Hand eingestellt werden. Dazu lässt man sich am besten Die 
Dauer der ersten Flanke tmp[1] anzeigen. Der von mir angesetzte Wert 
gilt für 8MHz intern.
Angehängte Dateien:
Moderator Persönliche Seite #4021806
Lesenswert?

grundschüler schrieb:
> ich dachte, dass der FB_RC5_64.h-code aus sich heraus verständlich ist.

Sorry, der ist absolut unlesbar. Das macht die Zip-Datei, wo Du Objekt-, 
eep-, hex, Proj-, lss-, sym-Dateien zusammen mit dem Source 
reinklatschst, überhaupt nicht besser.

> #define F_IR        82//75//=>FCPU/100000/9

Warum schreibst Du denn nicht

#define F_IR        (F_CPU/100000/9)

hin? Dann läuft es nicht nur mit Deinem speziell gewähltem Takt. Und was 
macht die magische 9 in Deiner Formel?

Was bedeutet eigentlich die Endung .k, die Du für Deine Sources 
verwendest? "Kaputtes-C"?

Ich glaube, Du hast den Sinn und Zweck von "Projekte und Code" nicht 
verstanden. Hier stellt man seinen Code vor, damit andere ihn für eigene 
Projekte verwenden oder etwas daraus lernen können

Deinen Code zu studieren ist eine Zumutung. Keine Einrückungen, 
unverständliche Abkürzungen, um den Code (absichtlich?) unleserlich zu 
machen... Sorry, das tut sich keiner an.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren