www.mikrocontroller.net

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


Autor: Steffen K. (steffen3)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bjoern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen K. (steffen3)
Datum:
Angehängte Dateien:
  • LCD.zip (27,4 KB, 1061 Downloads)

Bewertung
0 lesenswert
nicht 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).

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
static volatile uint_8 sekunde = 0;  // diese glob. Var. brauchen wir :-)

ISR(Timer_IRQ_xyz)  // tickt z.B. mit 100ms
{
  static ticks=0;
  if( (++ticks) >= 10 )
  {
    ticks = 0;
    sekunde = 1;
  }
}

void sekunden_fkt(void)
{
  //warte();  warten brauchen wir nicht mehr
  lcd_clear();
  adw();
  temperaturberechnen();
  ausgeben();
}

int main()
{
  init_all();  // alles initialisieren

  while(1)
  {
    if( sekunde )
    {
      sekunde =0;
      sekunden_fkt();
    }

    if( was_anderes )
       mach_was_anderes();
  }


}

Autor: Gast (Gast)
Datum:

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

Gast

Autor: F. Gruber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Steffen K. (steffen3)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

hier der Schaltplan

Autor: Abdou Zahim (Firma: uni bremen) (noury)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
kann man den code nicht in assembler compilen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.