www.mikrocontroller.net

Forum: Compiler & IDEs 16-Werte: Laufzeit vs Preprozessor


Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe in meinem Programm eine Anweisung
OCR1A = ADJ;
Wobwi ADJ als
#define ADJ 50000-130
definiert ist.

Ich möchte mun den Korrekturwert (die 130) während der Laufzeit des 
Programms verändern. Das stellt mich vor das Problem ein "int" oder aber 
ein "unsigned int" in das Register OCR1A zu schreiben.

Wei geht das? Wie kann man (zur Laufzeit) das Register füllen?

Gruß

Andreas

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe dein Problem nicht?
uint16_t wert = 123; //unsigned int

OCR1A = wert;

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

OK - hätte es besser beschreiben können:

Das Register OCR1A ist ja ein 16-Bit-Register. Es wird vom Compiler 
gemanaged, dass es richtig geschrieben wird, wenn man das o.g. Kommando 
verwendet (Präprozessor).

Meine Frage war:

Wie kann ich es aus dem Programm heraus beschreiben? Ich werde einen 
8-Bit-Wert haben. Den kann ich über ein cast zu dem 16-BIT-Wert 
addieren. lässt sich dann, wie von Simon beschrieben das Register mit 
dem 16-BIT-Wert schreiben ? Das wäre ja einfach ...

Gruß

Andreas

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ UBoot-Stocki (Gast)

>addieren. lässt sich dann, wie von Simon beschrieben das Register mit
>dem 16-BIT-Wert schreiben ? Das wäre ja einfach ...

Ja, klar, warum nicht?

MfG
Falk

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UBoot-Stocki wrote:
> lässt sich dann, wie von Simon beschrieben das Register mit
> dem 16-BIT-Wert schreiben ? Das wäre ja einfach ...

Klar, wie sonst? :-) Kannst es ja mal einfach ausprobieren. Wenns geht, 
dann gehts ;)

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.