Forum: Mikrocontroller und Digitale Elektronik Wie kan ich 16 bit T\C richtig initialisieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Andrey Richter (Gast)


Lesenswert?

Hallo zusammen !!!
Vielleicht kan jemand mir helfen.
Wie kan ich richtig 16 bit T\C1 bei AT8515 initialisieren und TIM!_OVF 
interrupt realisieren? Ich will z.b. dass an PORT B LED 7 an geht.

Schreibe folgendes,aber funktioniert nicht.
Was mache ich falsch?
danke im voraus

Andrey Richter


.org 0x000 rjmp RESET
.org 0x000 rjmp TIM1_OVF

RESET:

.def temp =r16
.include"8515def.inc"
.org 0x000

  rjmp main
  rjmp interrupt

main:

  ldi temp,LOW(RAMEND)
  out SPL,temp
  ldi temp,HIGH(RAMEND)
  out SPH,temp

  ldi temp,0xff
  out DDRB,temp
  out PORTB,temp

  ldi temp,0
  out GIMSK,temp ;Gen. Interrupt Mask disable

  ldi temp,0
  out GIFR,temp ; Gen. Interrupt Flag disable

  ldi temp,0b100000000
  out TIMSK,temp ;T\C1 Overflow Interrupt enable

  ldi temp,0
  out TCCR1A,temp ;T\C1 Control Reg. disable

  ldi temp,0b00000101
  out TCCR1B,temp  ;  Prescaler is 1024

  ldi temp,0b11111111
  out TCNT1H,temp

  ldi temp,0
  out TCNT1L,temp

  sei

loop: rjmp loop

interrupt:

  cbi PORTB,7
  reti

von thkais (Gast)


Lesenswert?

Mit .org 0x000 setzt Du die Adresse Deines Programms immer wieder auf 0. 
An Adresse 0 ist der Reset-Vektor.
Die ersten Adressen des Flash sind sogenannte Vektoren, sie werden als 
Sprungadresse verwendet, falls ein Interrupt auftritt. Für einen 2313 
sieht das ungefähr so aus:

.cseg
.org 0
  rjmp reset  ;Reset handler
  reti    ;External interrupt 0
  reti    ;External interrupt 1
  reti    ;Counter1 capture event
  reti    ;Counter1 compare match
  reti    ;Counter1 overflow
  reti    ;Counter0 overflow
  reti    ;UART RX complete
  reti     ;UART Data register empty
  reti    ;UART TX complete
  reti    ;Analog comparator


Für den 8515 hab ichs momentan nicht zur Hand, aber im Datenblatt wirst 
Du fündig.

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]
  • [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.