www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8535 timerinterrupt


Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, ich bin noch recht neu bei den avr's, und habe zu übungszwecken 
ein programm für den 8535 geschrieben, er soll einfach nur bei einem 
overflow den timernterrupt ausfürhren was  tut  ist nichts weiter als im 
hauptprogramm zu bleiben. hier ist der code ist recht kurz.
.nolist
.include "8535def.inc"
.list

.def temp = r16


.org $000
rjmp reset
.org $009
rjmp timint


reset:
ldi temp, 0x01
out TCCR0, temp
out TIMSK,temp
sei


main:
rjmp main

timint:
reti

Autor: gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
stackpointer setzen !
siehe Beispiel-Programme !
hth
gunter

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das hab ich  im nachhinein jezt gemacht, aber es geht immernoch nicht 
hier ist der neue code
.nolist
.include "8535def.inc"
.list

.def temp = r16


.org $000
rjmp reset
.org $009
rjmp timint


reset:
ldi temp, low(ramend)
out spl, temp
ldi temp, high (ramend)
out sph, temp

ldi temp, 0x01
out TCCR0, temp
out TIMSK,temp
sei


main:

rjmp main

timint:
reti

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woran willst du eigentlich merken, ob der int ausgeführt wird? Programm 
scheint in Ordnung.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programm ist fehlerfrei.

@crazy horse
Est gibt ja im AVR Studio einen Simulator mit dem du die Funktion 
überprüfen kannst.

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die sache ist ich habe es schon zichmal im simulator versucht, doch er 
springt den interruptvektor einfach nicht an (ich meine den gelben feil 
bei der simulation in einzelschritten mit F11) es könnte natürlich auch 
sein, das die version einen bug hat, ihr würdet mir ein rießen gefallen 
tun wenn jemand das mal mit einer brandneuen avrstudion simulieren würde
Eugen Dischke

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt Programm ist fehlerfrei.
Simulation mit AVR Studio 3.55 ohne Probleme.

Autor: Jürgen Lang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interrupt Vektor ist an Adresse 8 nicht 9. Vielleicht funktioniert es 
deshalb nicht mit allen Simulatoren.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timer 0 Overflow ist Adresse 9, Timer 1 Overflow ist Adresse 8

Autor: ReadyRed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo find ich denn im Datenblatt die Adressen für die Interupts? Entweder 
bin ich blind oder ich such an der falschen Stelle.

Ready

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim 8535 auf Seite 20

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab es jezt rausgefunden,  ich habe die version 4.01 (avr 
studio) durch die version 4.05 ersezt jezt läuft der code genau so wie 
erwartet es ist also um es deutlich zu sagen nur ein bug und ich muss 
nun nicht mehr an mir zweifeln das ich selbst für sowas nicht im stande 
bin *g

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.