mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Riesiger Kode mit volatile Variable


Autor: Dimon11/09 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander !!!

Bin langsam am verzweifeln. Folgendes Problem: im angehängten Code ist 
das Ergebniss meiner 2. Erfahrung mit einem µC. Nun beim Interrupt-Test 
wollte ich per Tastendrück den Wert einer Variable verändern.

Inzwischen habe ich rausgefunden, dass so eine Variable als volatile 
deklariert werden muss. Allerdings wenn ich das mache (volatile uint8_t 
time = 10; // Zum Bsp.) und die Variable in den ISR's einbinde. Wachst 
mein Code von ca. 192 Byte auf ca. 3 kByte.

Mein Zielsystem ist ein Attiny24, also nicht gerade viel Platz zu 
verfügung. Hat jemand eine Idee wie ich das Problemm (Variable per 
Interrupt verändern) doch hinkriege?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Fehler liegt hier:
_delay_ms(time);

Bei _delay_ms(); keine Variablen sondern nur konstante Werte verwenden, 
sonst wird die floating Point Bibliothek eingebunden.

Autor: Dimon11/09 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Benedikt, Danke!

Dachte mir schon sowas in die Richtung.

Dann werde ich Morgen das mit Timer-Interrupts versuchen zu realesieren.

Meinst Du hilft es?

Autor: Naja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Dann werde ich Morgen das mit Timer-Interrupts versuchen zu realesieren.
>Meinst Du hilft es?

Zur erfolgreichen Beantwortung von Fragen gehört auch das lesen der 
Antworten.

>Bei _delay_ms(); keine Variablen sondern nur konstante Werte verwenden,
>sonst wird die floating Point Bibliothek eingebunden.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Dachte mir schon sowas in die Richtung.
Wenn du dir das denkst, warum erwähnst du es dann nicht schon im ersten 
Post^^

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.