Hi, endlich ist mein erstes Projekt fertig. Das Projekt beeinhaltet die Temperaturmessung mit einem PT1000, als Temperatursenor, als µC dient der atmega168, die Temperatur wird auf einem 2*16 LCD ausgeben, in Zukunft soll auch noch die Uhrzeit über DCF77 eingeblendet werden. Der übernächste Schritt ist dann das loggen der Temperatur in bestimmten Zeitabschritten auf einer SD-Karte.
Das ist ja schön. Aber was in Gottes Namen bringt jemanden dazu, eine Datei gepackt mit dem Format 7z hier hochzuladen? Um in Dein Schönes Projekt zu schauen suche ich mir jetzt erst mal einen Entpacker dafür. Diesen installiere ich dann um ihn danach wahrschienlich nie wieder zu gebrauchen und meinen PC mit unnützem Müll vollzustopfen. Nein danke. Gast
@Gast Naja das ist halt das 7zip programm ist eigentlich garnicht schlecht. Aber das normale zip format ist natürlich etwas gebräuchlicher. @Steffen K. Ganz nett das Programm. Ich hab aber noch etwas konstruktive Kritik: -du solltest dir angewöhnen kommentare in deine Programme zu schreiben -die 1sec. warteschleife ist ziemlich unschön nimm lieber einen Timer dafür.
So hier noch mal der Anhang als zip, ich werde den Quelltext natürlich nochmal überarbeiten, wollte nur mal sehen ob dass überhaupt klappt(eine neue Version folgt).
Warum nicht gleich so. 7z habe sicher einige auf dem Rechner, aber sicherlich die wenigsten. ZIP dagegen wird jeder können. Was da besser ist oder nicht spielt bei den paar Bytes glaube ich keine Rolle. Ja für dein erstes Projekt schon nicht schlecht. Zu den Kommentaren von Bjoern möchte ich ergänzen, dass ich in DIESEM Fall die Sekunde Warteschleife nicht so schlimm finde. Wenn man das Programm so für sich alleine läßt, ist das OK. Aber wenn Du noch DCF77 z.B. dazu bauen möchtest u.s.w. dann hat Bjoern Recht. Da ist die Warteschleife sehr hinderlich. Was mir aber aufgefallen ist: der AVR kennt keine double typen, er nimmt immer float. Das nur als Hinweis. Ansonsten ist es keine schöne Art, nur mit globalen Variablen zu programmieren. Das bringt irgendwann viel Ärger, außerdem wird dir dann bei größeren Projekten der Speicher sehr schnell eng. Hier schnell ein Beispielcode ohne Warteschleifen (nicht getestet, nur schnell zusammen gehackt). Damit hast du in der Hauptschleife wieder "volle Rechenzeit" und vergeudest sie nirgends. Gruß der Gast
1 | static volatile uint_8 sekunde = 0; // diese glob. Var. brauchen wir :-) |
2 | |
3 | ISR(Timer_IRQ_xyz) // tickt z.B. mit 100ms |
4 | {
|
5 | static ticks=0; |
6 | if( (++ticks) >= 10 ) |
7 | {
|
8 | ticks = 0; |
9 | sekunde = 1; |
10 | }
|
11 | }
|
12 | |
13 | void sekunden_fkt(void) |
14 | {
|
15 | //warte(); warten brauchen wir nicht mehr
|
16 | lcd_clear(); |
17 | adw(); |
18 | temperaturberechnen(); |
19 | ausgeben(); |
20 | }
|
21 | |
22 | int main() |
23 | {
|
24 | init_all(); // alles initialisieren |
25 | |
26 | while(1) |
27 | {
|
28 | if( sekunde ) |
29 | {
|
30 | sekunde =0; |
31 | sekunden_fkt(); |
32 | }
|
33 | |
34 | if( was_anderes ) |
35 | mach_was_anderes(); |
36 | }
|
37 | |
38 | |
39 | }
|
Ach so: ticks in der ISR oben sollte natürlich auch vom Typ uint_8 sein. Gast
Hast du noch einen Schaltplan wie du den PT-Widerstand an den uC angeschlossen hast? Habe leider kein sPlan um die Datei im Archiv zu öffnen...
Da du den LCD-Anschluss sowieso nach deiner Hardware konfigurieren musst: Lad dir AVR-Studio herunter. Lad dir WinAVR herunter. Installier beides. Kompilier das Beispiel Brenn es in deinen µC Es besteht eher weniger Sinn darin, ein deratiges Programm, welches im C-Source Code vorliegt, als HEX-File zu veröffentlichen. (Ausserdem: Im Zip File, im Default Ordner ist das zugehörige LCD.HEX)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.