konstante als ganzzahl - z.b. BYTE - definieren

Gast #476940
im gcc-tutorial gibt es ein beispiel in c zum tasten-entprellen, das die 
funktion _delay_ms(time) benutzt.
der parameter time ist in der definition von _delay_ms (die über delay.h 
eingebunden wird) als double definiert.
compiliere ich das programm für den attiny2313 mit z.b _delay_ms(100), 
so wird 100 als double interpretiert, die double-routinen geladen(?) und 
somit sprengt das kleine programm den speicher des attiny2313.
wie kann ich dem compiler beibringen, dass die konstante "time" z.b. 
byte (oder sonst ein ganzzahltyp) ist? - ich will nicht delay.h 
umändern!
danke für die bisher gewährte hilfe
jr
Gast
da ich c erst selbst lerne, aber in meinem unterricht einsetzen will mit 
dem attiny2313, bin ich auch an dieser software-lösung wegen der 
grundsätzlichen bedeutung interessiert.

deshalb die frage: wie kann ich den optimizer einschalten für den 
c-compiler im avr-studio?
Gast
Project | Configuration Options, dann unten im Feld "Optimization" ein 
anderes Level als -O0 einstellen (-Os ist Codesize-Optimization, -O1 bis 
-O3 sind Optimierungen, die i.d.R. mehr oder weniger Kompromisse 
zwischen Codegröße und Geschwindigkeit machen).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.