www.mikrocontroller.net

Forum: Compiler & IDEs AVR BUTTERFLY ZEIT


Autor: AFIF (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi,
Ich wollte wenn eine  bestimmte erreignis geschiht, der Zeit diese
Ereignis speichern in EEPROM .Weist einer von euch wie funktionniert
das?
(Ich habe der Zeitfunktion  von Peter flurry (Test Programm)RTC.c)
danke

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

Bewertung
0 lesenswert
nicht lesenswert
Wie funktioniert was?
Ins EEPROM schreiben.
Da schaust du am besten mal ins AVR-GCC-Tutorial auf dieser
Seite (Link findest du in der Leiste links, direkt unter 'Artikel').

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenne Peter Fleurys Testprogramm nicht, aber im angehaengten Quellcode
(RTC.c) erkenne ich keinen Unterschied zwischen meiner
avr-gcc-Portierung des Butterfly-Beispielcodes von Atmel. Also einfach
nur hier reinkopiert oder uebersehe ich etwas?

Erforderliche Schritte (ungefaehr):
- Butterfly-Beispielcode nehmen um nicht alles neu schreiben zu muessen
(Atmel original oder meine gcc-Portierung)

- Platz fuer zusaetzlichen Code schaffen (z.B. sound oder adc und alle
Referenzen darauf entfernen - das sind die groessten Speicherfresser)

- eine "Set Alarm Time"-Funktion in the State-Maschine der
Beispielanwendung einbauen (neuer ID, neuer Handler, siehe main.h,
menu.h)

- die Funktion implementieren auf Basis der Funktionen in RTC.c der
Beispielanwendung.

- Die Zeitdaten der Alarmtzeit (Bytes) ins Eeprom speichern, entweder
wie von K.-H. Buchegger vorgeschlagen mittels der "offiziellen"
Funktionen lt. avr-libc-manual/avr-gcc-Tutorial oder mit den "privaten
Funktionen" aus eeprom.c der Beispielanwendung. Die Alarmzeit sollte
aber beim Systemstart (vor der Hauptschleife in main()) aus dem Eeprom
gelesen werden und in "Ram-Variablen" zwischengespeichert werden,
kostet kaum Platz, ist aber deutlicher schneller im Zugriff.

- Alarmzeit und aktuelle Zeit der "Zeitupdate"-Funktion von RTC.c
vergleichen (Timer-Overflow, wird jede Sekunde ausgefuehrt), globales
Flag (volatile!) setzen bei Uebereinstimmung.

- in Hauptschleife (main.c) Flag pruefen, wenn gesetzt: Alarmfunktionen
ausfuehren, Flag loeschen.

Hoffe es hilft,
Martin Thomas

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.