Forum: Projekte & Code Temperaturmessung und Ausgabe auf 2*16 LCD


von Steffen K. (steffen3)


Angehängte Dateien:

Lesenswert?

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.

von Gast (Gast)


Lesenswert?

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

von bjoern (Gast)


Lesenswert?

@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.

von Steffen K. (steffen3)


Angehängte Dateien:

Lesenswert?

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).

von Gast (Gast)


Lesenswert?

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
}

von Gast (Gast)


Lesenswert?

Ach so: ticks in der ISR oben sollte natürlich auch vom Typ uint_8 sein.

Gast

von F. Gruber (Gast)


Lesenswert?

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...

von Steffen K. (steffen3)


Angehängte Dateien:

Lesenswert?

hallo,

hier der Schaltplan

von Abdou Z. (Firma: uni bremen) (noury)


Lesenswert?

hallo
kann man den code nicht in assembler compilen

von Karl H. (kbuchegg)


Lesenswert?

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
Noch kein Account? Hier anmelden.