mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer


Autor: Steffen Burr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!
Vor einiger Zeit hab ich mit nem 4433 ne Schrittmotorsteuerung gebaut. 
Hat bestens funktioniert.
Jetzt hab ich die selbe Timerroutine für den 8515 umgeschrieben, aber da 
tut sich absolut nichts.

Außer dem erweiterten Stack, was muss ich da noch verändern, damit das 
funktioniert ??

Danke, Steffen


.include "8515def.inc"         ;bzw. 2333def.inc
.org 0x000          ; Programm kommt ganz an den Anfang des Speichers

.def temp = r16
.def temp1 = r17

  rjmp Init      ; Reset Handler
  reti        ; IRQ0 Handler
  reti        ; IRQ1 Handler
  reti        ; Timer1 Capture Handler
  reti        ; Timer1 compare Handler
  reti        ; Timer1 Overflow Handler
  rjmp Timer      ; Timer0 Overflow Handler
  reti        ; SPI Transfer Complete Handler
  reti        ; UART RX Complete Handler
  reti        ; UDR Empty Handler
  reti        ; UART TX Complete Handler
  reti        ; ADC Conversion Complete Interrupt Handler
  reti        ; EEPROM Ready Handler
  reti        ; Analog Comparator Handler


Init:

; ######################################
; Stack initialisieren
; ######################################

  ldi temp, high(RAMEND)
  out SPH, temp
  ldi temp, low(RAMEND)
  out SPL, temp


; ######################################
; Port D Datenrichtingsregister setzen
; ######################################

  ldi temp, 0b00001000
  out DDRD, temp

; ######################################
; Port B Datenrichtingsregister setzen
; ######################################

  ldi temp, 0x00
  out DDRB, temp


; ######################################
; Timer initialisieren
; ######################################


  ldi temp, 0b00000101    ;Timer 0 auf CK 1024 einstellen
  out TCCR0, temp
  ldi temp, 200
  out TCNT0, temp
  ldi temp, 0b00000010    ;Timer 0 Interrupt initialisieren
  out TIMSK, temp


  sei         ;Interrupts allgemein aktivieren


  rjmp main

; ######################################
; Hauptschleife
; ######################################

main:

  rjmp main


; ######################################
; Timer
; ######################################

Timer:          ; Interrupt Routine 1
  push temp      ; R16 sichern
  ldi temp, 200
  out TCNT0, temp

        ; Timerquelltext
  sbi PORTD, 3


  pop  temp      ; R16 zurück laden
  reti        ; zurück

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für den 8515 mußt du die Interrupt-Tabelle richtig anpassen:

  rjmp Init ; Reset Handler
  reti ; IRQ0 Handler
  reti ; IRQ1 Handler
  reti ; Timer1 Capture Handler
  reti ; Timer1 compare A Handler
  reti ; Timer1 compare B Handler
  reti ; Timer1 Overflow Handler
  rjmp Timer ; Timer0 Overflow Handler
  reti ; SPI Transfer Complete Handler
  reti ; UART RX Complete Handler
  reti ; UDR Empty Handler
  reti ; UART TX Complete Handler
  reti ; ADC Conversion Complete Interrupt Handler
  reti ; Analog Comparator Handler

Autor: Steffen Burr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort. Jetzt funktionierts ;-)

Ich versuch grad das Programm, dass ich geschrieben hab im AVR 3.56 
Simulator zu testen. Hab noch ne (total bescheuerte) Frage. Wie kann ich 
das simulierte Programm wieder anhalten und den Code abändern ??

Danke!

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Debug / Reset und direkt Shift F5

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.