mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sekundentakt mega16


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte den im Forum gefundenen Code der für einen mega8
geschrieben ist für meinen mega16 anpassen.
also habe ich .include"m8def.inc" in .include"m16def.inc"
geändert.
dann die entsprechende Frequenz eingetragen
.equ  xtal  = 16000000
als nächstes im AVR Studio mit Build F7 auf Fehler getestet
Hier bekomme ich jetzt folgende Fehlermeldungen

C:\Programme\Atmel\AVR Tools\AvrStudio4\timer1.asm(34) : warning:
Immediate byte operand out of range
C:\Programme\Atmel\AVR Tools\AvrStudio4\timer1.asm(64) : warning:
Immediate byte operand out of range
Program memory usage:
Code             :   41 words
Constants (dw/db):    0 words
Unused           :   11 words
Total            :   52 words
Assembly complete with no errors.
Deleting   'C:\Programme\Atmel\AVR Tools\AvrStudio4\timer1.eep'


Wenn ich den wert von ".equ  debounce = 256" auf 255 ändere bekomme
ich keine Fehlermeldung mehr aber damit dürfte ein Sekundengenauer Takt
nicht mehr funktionieren.
Ich habe zur Kontrolle an PIN 1 (PB0)eine LED angschlossen
wie kann ich diese in den Code einbinden damit sie im Sekundentakt
leuchtet?

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab' mir den Code nicht genau angesehen, aber debounce dient doch
lediglich der Tastenentprellung, denke ich.

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soweit ich den code verstanden habe wird mit debounce ein wert
festgelegt der für die Berechnung des Comparewertes OCR1A
benötigt.
hier die originalerklärung
Als Beispiel wird 11,0592MHz gewählt, welches ein übliches
Baudratenquarz ist, d.h. damit können die UART Standardbautraten
erzeugt werden.
Der Softwareteiler wird mit 256 gewählt und kann somit nur mit einem
einzigen Byte realisiert werden. Für größere Werte muß der
Softwareteiler als int (2 Byte) deklariert werden. Bei kleineren Werten
als 256 muß man beachten, daß der 2.Faktor immer noch in 2 Byte paßt, um
als Comparewert für T1 verwendet zu werden.

Mit 256Hz ergibt sich eine Timerinterruptzeit von 4ms, die auch sehr
gut zum Entprellen von Tasten benutzt werden kann. Eine Entprellroutine
kann also bequem in den Timerinterrupt mit eingefügt werden
ende des Zitates

als demnach wird 265 als wert für den softwareteiler verwendet
und wenn ich diesen wert ändere ist der sekundentakt nicht mehr genau
oder??

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier der Originalbetrag aus dem Forum

http://www.mikrocontroller.net/forum/read-4-57760.html

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
ist denn hier keiner der sich damit auskennt?
Es sind bestimmt Anfängerfehler die ich mache

mfg torsten

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ldi prescaler, debounce
lade Register R18 mit 256.
kann ja sein, dass Peter's Compiler in früheren Versionen nicht
gemeckert hat, aber wenn man in ein Register 256 schreibt, kommt man
vielleicht auf eins oder so...? Ich weiss jedenfalls nicht, was mit dem
9ten bit passiert, jedenfalls gibt es einen Überlauf.
Gruß
Axel

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi Axel,

kann ich den Code so verwenden oder muss angpasst werden
und wenn schon mal jemand antwortet den zweiten Teil meiner Frage
betreffend ich habe an PIN 1 PB0 ein Led inkl. Vorwiederstand an VCC
wie kann ich den Sekundentakt ausgeben?

mfg Torsten

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.